← Les 3 skills juridiques
droit-suisse · 2.1.0

Droit suisse

Droit suisse : moteur de fond. Recherche hiérarchisée (7 rangs), subsomption, gabarits de sortie. À charger avant tout skill juridique spécialisé.

15 fichiers 9 références 4 gabarits 1433 lignes

Dépendances et sources

Le moteur de recherche : sept rangs de sources, six phases, un gabarit unique. Toute question de droit suisse passe par ici.

ÉlémentDétail
Références9 fichiers · audit-repo-legal-assistant.md, checklist-sortie.md, citation-suisse.md, extraction-faits.md, methode-et-structure.md, opencaselaw-mcp.md, questions-de-droit.md, sources-et-outils.md, subsomption.md
Gabarits4 fichiers · avis-de-droit.md, gabarit-general.md, note-courte.md, plans-analyse.md
Scripts1 fichiers · ocl.py
Serveur MCPswiss-caselaw · https://mcp.opencaselaw.ch/mcp · lecture seule, sans clé, outils mcp__swiss_caselaw__*
Outils appelésanalyze_legal_trendattest_responsecheck_claim_supportcitefind_appeal_chainfind_citationsfind_leading_casesfind_relevant_erwaegungget_article_historyget_article_purposeget_case_briefget_commentaryget_decisionget_decision_structureget_decisionsget_erwaegungget_lawget_legislationget_materialienget_practiceget_regesteget_scholarshipsearch_botschaftsearch_commentariessearch_decisionssearch_lawssearch_legislationsearch_materialiensearch_practicesearch_scholarship

Sources externes mobilisées

SourceCe qu'on y trouve
Fedlexlois fédérales, éditions historiques, DE/FR/IT
LexFindlois cantonales des 26 cantons
Jurisprudence TFATF publiés, arrêts non publiés, TAF, TPF, COMCO
OnlineKommentar / OpenLegalCommentary1 796 commentaires open access
BundesblattBotschaften dès 1999, Vernehmlassungen dès 1993
Pratique administrativedirectives, circulaires, 9 900+ documents
Le corpus MCP ne contient ni Commentaire romand, ni BSK/Zürcher/Berner Kommentar, ni revues payantes. Quand la réponse en dépend, le dire et indiquer ce qu'il faut consulter en plus.

Index des fichiers

Cliquer pour ouvrir. La touche / met le focus dans la recherche.

SKILL.md droit-suisse/SKILL.md 9 Ko · 193 lignes

Droit suisse — moteur de fond

Un seul moteur pour toute question de droit suisse, quel que soit le domaine : où chercher (sources), comment chercher (processus), comment rendre (gabarit unique). Le domaine change le contenu, jamais la démarche ni la structure de sortie.

C'est le point d'entrée du fond. recours-tf et contrats-travail-ch traitent la procédure et la normalisation ; dès qu'une norme doit être interprétée, une clause validée ou un état de la jurisprudence établi, la réponse se construit ici.

Quand l'utiliser

  • Toute question de droit suisse (contrats, bail, travail, famille, successions, RC, pénal, administratif, social, fiscal, construction).
  • Cadrer une recherche, structurer un avis, présenter des sources, vérifier une citation.
  • Reprendre un dossier existant pour en contrôler la méthode.
  • Toute question de fond soulevée par une skill spécialisée : validité d'une clause (→ contrats-travail-ch), grief au fond (→ recours-tf), autorité d'un arrêt.

Hors périmètre : rédiger un recours au TF (→ recours-tf) ; comparer des contrats de travail (→ contrats-travail-ch) ; droit étranger ou UE pure (sauf droit suisse d'exécution) ; signature ou dépôt d'un acte (→ avocat).

1. Où chercher — les sources, dans cet ordre

La hiérarchie n'est pas décorative : elle détermine l'ordre des requêtes. Une recherche qui commence par la doctrine trouve des opinions ; une recherche qui commence par la norme trouve le droit.

Rang Source Outil Ce qu'on en tire
1 Norme en vigueur à la date des faits get_law (avec as_of), search_laws conditions d'application, texte exact
2 Jurisprudence de principe find_leading_cases, get_regeste règle posée, autorité
3 Jurisprudence d'application search_decisions, get_case_brief application aux faits, évolutions
4 Texte exact du considérant cité get_erwaegung, find_relevant_erwaegung la phrase qu'on cite
5 Doctrine open access get_commentary, search_commentaries, get_doctrine, search_scholarship interprétation, controverses
6 Matériaux get_article_purpose, search_botschaft, get_materialien, get_article_history but de la norme, historique
7 Pratique administrative search_practice, get_practice application par l'administration

Détail, couverture et limites : references/sources-et-outils.md.

2. Comment chercher — le processus

Six phases, toujours dans cet ordre. Chacune a son fichier.

  1. Cadrer — branche, date déterminante (le droit applicable est celui en vigueur au moment des faits), canton, destinataire, langue de sortie. Un élément qui change la réponse se demande ; le reste s'assume en hypothèse explicite.
  2. Faits — chronologie datée, parties qualifiées, tri de ce qui est juridiquement pertinent, faits manquants signalés. → references/extraction-faits.md
  3. Questions — « qui veut quoi de qui, sur quelle base », préalables avant fond. → references/questions-de-droit.md
  4. Sources — les sept rangs ci-dessus, dans l'ordre ; une requête par question. → references/sources-et-outils.md
  5. Analyse — syllogisme et subsomption en 4 temps, canons d'interprétation, charge de la preuve et délais. → references/subsomption.md
  6. Vérifier — deux contrôles, dans cet ordre. Voir ci-dessous.

Phase 6 — vérifier l'existence, puis le soutien

  1. Forme et existence : cite() sur chaque référence. Il renvoie la chaîne canonique et valide le numéro de considérant.
  2. Soutien : check_claim_support() sur les 2 à 3 affirmations décisives, celles dont dépend la conclusion. Une référence peut exister et ne pas soutenir la phrase qu'on lui accole ; c'est le seul défaut invisible à la relecture.
  3. Périmètre : ne pas vérifier une par une les affirmations secondaires. Une vérification exhaustive coûte plus que l'analyse et n'améliore pas la conclusion.
  4. Contrôle final : attest_response() sur le brouillon, puis la checklist commune (references/checklist-sortie.md).

Méthode universitaire complète (critères d'évaluation, plans académiques FR/DE) : references/methode-et-structure.md.

Règles de recherche

  • Partir de l'article, jamais du thème. Le thème sert à trouver l'article, pas à conclure.
  • 3 à 8 termes, une requête par question. Pas de collage de texte.
  • Chercher en allemand par défaut (la majorité de la jurisprudence fédérale y est), ne jamais filtrer par langue sans raison.
  • Codes de loi en allemand dans les outils : OR, ZGB, StGB, BV.
  • Remonter le graphe de citations (find_citations, find_appeal_chain) avant de conclure qu'un arrêt fait autorité.
  • Vérifier la date : norme en vigueur et jurisprudence postérieure aux faits.
  • Savoir s'arrêter : trois arrêts convergents et une doctrine valent mieux que trente résultats non lus.

3. Comment rendre — le gabarit unique

Toute sortie a la même ossature en six blocs, quelle que soit la longueur :

1. QUESTION      la question de droit, reformulée, en une phrase
2. FAITS         ce qui est établi + ce qui manque
3. RÈGLES        normes applicables (version), jurisprudence, doctrine
4. ANALYSE       application aux faits, point par point
5. CONCLUSION    réponse directe, risques, prochaines étapes
6. SOURCES       références vérifiées (notes ou liste finale)

Trois densités du même gabarit — choisir selon le destinataire, pas selon l'humeur :

Densité Volume Usage Fichier
Réponse courte 10-15 lignes chat, courrier, question ponctuelle templates/note-courte.md
Note d'analyse 1-2 pages dossier interne, arbitrage rapide templates/gabarit-general.md
Avis de droit 5-15 pages client, assurance, autorité templates/avis-de-droit.md

Plans académiques FR/DE : templates/plans-analyse.md.

4. Comment sourcer — l'essentiel

  • Une seule source de vérité pour les formes : references/citation-suisse.md (Zitierregeln du TF). Les autres skills y renvoient ; aucune ne redéfinit un format.
  • Passer chaque référence par cite() avant de l'écrire. Une citation composée à la main est une faute qui se voit.
  • pinpoint_status: verified prouve que le considérant existe, pas qu'il soutient l'affirmation : le fond se contrôle avec check_claim_support().
  • Citer article + alinéa + chiffre/lettre ; jurisprudence avec son considérant.
  • Le contenu de la loi se cite par la loi, pas par un manuel. Pas de citation de deuxième main. Pas de citation non lue.

5. Limites à annoncer, pas à combler

Le corpus open access ne contient pas le Commentaire romand, les BSK/Zürcher/Berner Kommentar, les revues payantes, ni toute la jurisprudence cantonale non publiée. Quand la réponse en dépend, le dire — et proposer ce qu'il faut consulter en plus. Ne jamais inventer le contenu d'une source payante.

6. Pièges

Méthode : 1. Partir de la doctrine ou d'un arrêt « qui ressemble » au lieu de la norme. 2. Répondre avec le droit d'aujourd'hui sur des faits d'il y a trois ans. 3. Mélanger faits et droit dès la deuxième phrase. 4. Traiter à plat : 80 % du texte doit porter sur les 20 % contestés. 5. Confondre existence d'une citation et soutien d'une affirmation.

Outils : references/sources-et-outils.md (codes en allemand, total en borne inférieure, commentaires manquants, find_relevant_erwaegung sensible aux accents).

Checklist de sortie

Version commune aux trois skills, à passer avant tout livrable : references/checklist-sortie.md.

  • [ ] Question reformulée « qui/quoi/de qui/sur quelle base »
  • [ ] Date déterminante fixée, norme lue dans sa version applicable
  • [ ] Faits séparés du droit, manques et hypothèses explicites
  • [ ] Sources parcourues dans l'ordre (norme → jurisprudence → doctrine → matériaux)
  • [ ] Chaque référence vérifiée par cite(), chaque affirmation décisive par check_claim_support()
  • [ ] Gabarit en six blocs respecté, densité choisie selon le destinataire
  • [ ] Limites du corpus annoncées si elles changent la réponse

Ce que contient ce dossier — quoi charger, quand

Fichier Charger quand
references/extraction-faits.md phase Faits, dès qu'il y a plus de quelques pièces
references/questions-de-droit.md phase Questions, plusieurs prétentions ou préalables
references/sources-et-outils.md avant la première requête : quel outil pour quelle source
references/subsomption.md phase Analyse, condition contestée
references/citation-suisse.md dès qu'une référence doit être écrite
references/methode-et-structure.md avis long, plan académique FR/DE
references/opencaselaw-mcp.md paramètres des outils, corpus, pièges techniques
references/audit-repo-legal-assistant.md audit d'un dépôt ou d'un assistant juridique
references/checklist-sortie.md avant livraison (commun aux trois skills)
templates/gabarit-general.md structure en six blocs et trois densités
templates/note-courte.md réponse rapide ou courrier
templates/avis-de-droit.md avis de droit 5-15 pages
templates/plans-analyse.md plans académiques FR/DE
scripts/ocl.py fallback CLI quand le serveur MCP n'est pas chargé

Chaînage

  • recours-tf : la procédure et la forme du grief. Le fond (interprétation, jurisprudence, subsomption) se cherche ici.
  • contrats-travail-ch : les champs, les conversions et le comparatif. La validité des clauses se contrôle ici.
  • grounded-citations : le ledger de sources pour un livrable hors droit suisse.
référence droit-suisse/references/checklist-sortie.md 1 Ko · 29 lignes

Checklist de sortie — commune aux trois skills

À passer avant de livrer, quelle que soit la densité. Les points 1 à 6 valent pour tout livrable juridique ; le point 7 dépend de la skill utilisée.

  • [ ] Question reformulée en termes juridiques (« qui veut quoi de qui, sur quelle base »)
  • [ ] Date du droit applicable indiquée (norme lue dans sa version en vigueur à la date des faits)
  • [ ] Faits : manques signalés, hypothèses écrites explicitement
  • [ ] Sources primaires citées et vérifiées par cite() (forme + existence du considérant)
  • [ ] Soutien des affirmations décisives contrôlé par check_claim_support() (2 à 3 points, pas tous)
  • [ ] Limites du corpus annoncées si elles changent la réponse (pas de Commentaire romand, BSK, revues payantes, jurisprudence cantonale partielle)
  • [ ] Structure : six blocs (question, faits, règles, analyse, conclusion, sources), densité adaptée au destinataire

Point 7 — contrainte propre à la skill

Skill Vérification supplémentaire
droit-suisse hiérarchie des sources parcourue dans l'ordre (norme → jurisprudence → doctrine → matériaux → pratique)
recours-tf les huit verrous traités explicitement ; griefs en cinq parties ; pas de fait nouveau (art. 99 LTF) ; délai calculé par écrit
contrats-travail-ch les sept paramètres de cadrage figés ; clauses nulles signalées ; package complet valorisé (cash + prévoyance + temps)

Trois défauts qui échappent à la relecture

  1. Une référence qui existe mais ne soutient pas la phrase qu'on lui accole.
  2. Une norme citée dans sa version actuelle sur des faits antérieurs.
  3. Une conclusion qui répond à une autre question que celle du bloc 1.
référence droit-suisse/references/citation-suisse.md 6 Ko · 135 lignes

Citer en droit suisse — Zitierregeln du Tribunal fédéral

Source primaire : Zitierregeln, Tribunal fédéral / Bundesgericht (https://www.bger.ch/files/live/sites/tfl/files/pdf/Reglemente/01_Zitierregeln_d.pdf), utilisées par le TF dans ses arrêts et reprises par les facultés (UNIBE, UZH). Compléments : FORSTMOSER/OGOREK/SCHINDLER, Juristisches Arbeiten, 7e éd. 2023 ; RYSER BÜSCHI/SCHLEGEL/PFLAUM/GLATTHARD, Juristische Arbeiten erfolgreich schreiben und präsentieren, 3e éd. 2024.

1. Jurisprudence

Tribunal fédéral — arrêts publiés (ATF/BGE/DTF)

Cas DE FR IT
Renvoi simple BGE 133 II 292 ATF 133 II 292 DTF 133 II 292
Avec considérant BGE 133 II 292 E. 3.2 ATF 133 II 292 consid. 3.2 DTF 133 II 292 consid. 3.2
Avec page BGE 133 II 292 E. 3.2 S. 296 ATF 133 II 292 consid. 3.2, p. 296 —
Sous-considérant BGE 127 V 219 E. 2b/bb S. 226 ATF 127 V 219 consid. 2b/bb, p. 226 —
Plusieurs arrêts BGE 132 III 18 E. 4.1; 132 V 321 E. 6.1 ATF 132 III 18 consid. 4.1; 132 V 321 consid. 6.1 —
Même volume, autres pages répéter le volume : BGE 128 II 145 E. 2.2 S. 151; 121 I 367 E. 3b S. 375 idem —
Renvois multiples … E. 2.3 S. 45; 130 V 163 E. 4.3.1 S. 172; je mit Hinweisen … ; chacun avec références —

Tribunal fédéral — arrêts non publiés

Urteil (des Bundesgerichts) 6B_214/2007 vom 13. November 2007 E. 5.10.3
arrêt (du Tribunal fédéral) 6B_214/2007 du 13 novembre 2007 consid. 5.10.3
  • Destiné à la publication : … , zur Publikation vorgesehen / … , destiné à la publication.
  • Non publié mais cité dans un ATF : Urteil 2P.318/1997 vom 18. Februar 1999 E. 1, nicht publ. in: BGE 125 I 182.
  • Publié en revue : Urteil 1P.440/2000 vom 1. Februar 2001, in: SJ 2001 I S. 221 (variante abrégée : SJ 2001 I S. 221, 1P.440/2000).
  • En note de bas de page, la forme longue se réduit au besoin à Urteil 6B_214/2007 E. 5.10.3 une fois la référence complète donnée.

Autres juridictions

Juridiction Forme
Tribunal administratif fédéral BVGE 2007/2 E. 3.2 S. 18 / ATAF 2007/2 consid. 3.2 / Urteil B-2125/2006 vom 26. April 2007 E. 3
Tribunal pénal fédéral TPF 2005 127 E. 10.3.3 S. 134 / TPF 2005 127 consid. 10.3.3
Tribunal cantonal Urteil (des Obergerichts des Kantons Zürich) vom 11. April 1967, in: ZR 66/1967 S. 248 / arrêt (de la Cour de justice du canton de Genève) du … , in: SJ 2010 I 1
CEDH Urteil (des EGMR) Kaiser gegen Schweiz vom 15. März 2007 § 35 / arrêt (de la CourEDH) Kaiser c. Suisse du 15 mars 2007 § 35
CJUE Urteil vom 25. März 2010 C-278/08 BergSpechte, Randnr. 18 ff.

Usage pratique : la première mention est complète, les suivantes abrégées (Urteil 6B_214/2007 E. 5.10.3), avec mit Hinweisen / avec références quand on renvoie à une jurisprudence abondante.

2. Législation

  • Loi fédérale, première mention : titre officiel complet, sigle, numéro SR — Bundesgesetz vom 30. März 1911 betreffend die Ergänzung des Zivilgesetzbuches (Fünftes Buch: Obligationenrecht) (OR; SR 220) / Loi fédérale du 30 mars 1911 complétant le Code civil suisse (Livre cinquième : droit des obligations) (CO ; RS 220).
  • Ensuite : Art. 41 Abs. 1 OR / art. 41 al. 1 CO. Toujours préciser al. / Abs. / lit. / ch. / phrase ; distinguer les variantes.
  • Dispositions finales : Art. 2 ÜbBest. BV, Art. 7c SchlT ZGB.
  • Ancien droit : aArt. 129 UVV / art. 4 aBV ; version donnée : Art. 34a Abs. 1 BVG (in der seit 1. Januar 2005 gültigen Fassung).
  • Droit cantonal : titre officiel + recueil cantonal (ex. LS 550.1, RSG K 1 05).
  • Traités : FZA; SR 0.142.112.681.

3. Doctrine

Modèle général (monographie) :

MÜLLER GEORG, Elemente einer Rechtssetzungslehre, 2. Aufl., Zürich 2006, S. 69 ff.
AUBERT JEAN-FRANÇOIS, Traité de droit constitutionnel suisse, vol. II, 1967, p. 458 ss

Commentaire (forme la plus utilisée en pratique) :

BAUDENBACHER CARL, in: Basler Kommentar, Obligationenrecht, 2. Aufl. 2002,
  N. 16 vor Art. 620 OR, S. 230
HONSELL HEINRICH, in: Basler Kommentar, OR, 4. Aufl. 2007, N. 6 der Vorbemerkungen
  zu Art. 197-210 OR
JACQUES CHRISTINE, in: Commentaire romand, Impôt fédéral direct, 2008,
  n° 23-25 ad art. 33 LIFD

Règles : auteur en CAPITALES (nom puis prénom), sans titres académiques ; numéro de marge N. / n° ad/dazu/zu l'article ; abréviation a.a.O. / op. cit. pour les renvois suivants ; les sous-titres des ouvrages sont supprimés ; les traductions entre crochets si l'on traduit un titre.

Terminologie romande : ad art. est l'usage du Commentaire romand, n° pour le numéro de marge. C'est la seule différence structurante avec l'usage alémanique.

4. Périodiques, contributions, thèses

REICH MARKUS, Das Leistungsfähigkeitsprinzip im Einkommenssteuerrecht, ASA 53 S. 16 f.
DE HALLER JEAN-CLAUDE, L'hypothèque légale de l'entrepreneur, ZSR 101/1982 II S. 224
KARIN MÜLLER, Einige Gedanken zum Begriff … , in: Wege zum Bundesgericht, 2007, S. 127 ff.
KLARA REBER, Abgrenzung zwischen Dienstvertrag und Auftrag, Diss. Basel 1972, S. 28

f. = page suivante, ff. = pages suivantes, ss en français.

5. Matériaux

Botschaft vom 8. Juni 2012 zur Änderung … , BBl 2012 6663 (nachfolgend: Botschaft …)
Message du 8 juin 2012 concernant … , FF 2012 6663

Un projet non adopté : Art. 3 des Entwurfs vom 21. Oktober 2005 (E-StPO; BBl 2006 1389).

6. Règles de fond (facultés suisses)

  1. On cite en note de bas de page, pas dans le corps du texte ; la note se place à la fin de l'idée empruntée.
  2. On cite le document où l'idée se trouve réellement (pas de citation de deuxième main) ; les sources internet uniquement si l'auteur est identifiable.
  3. Le contenu de la loi se cite par la loi, pas par un manuel (« Selon Müller, l'art. 41 CO exige… » est une faute).
  4. La subsomption (application des faits) ne se source pas : aucune jurisprudence n'a déjà tranché votre cas.
  5. Le texte de loi n'entre pas dans la bibliographie ; la jurisprudence non plus. Bibliographie = doctrine citée, alphabétique, éditions les plus récentes.
  6. Ne jamais citer un arrêt qui n'a pas été lu dans son texte (via get_erwaegung).
  7. Auteurs et sources doivent être cités dans leur langue d'origine ; une traduction se signale.

7. Abréviations usuelles

ATF/BGE/DTF · consid./E./consid. · al./Abs. · lit./Bst. · ch./Ziff. · ss/ff · RS/SR/AS (Recueil systématique / Amtliche Sammlung) · FF/BBl · LTF/BGG · CO/OR · CC/ZGB · CP/StGB · CPC/ZPO · CPP/StPO · LP/SchKG · LEF (poursuite) · LAA/UVG · LAI/IVG · LAMal/KVG · LPP/BVG · ZC/ZR (Zürcher Zivilrechtspflege) · SJ (Semaine judiciaire) · RSJ · ZSR/SJZ · AJP/PJA · RFJ · JdT (Journal des tribunaux).

référence droit-suisse/references/extraction-faits.md 3 Ko · 90 lignes

Extraction des faits juridiquement pertinents

Principe : da mihi facta, dabo tibi ius. Le tri des faits se fait par rapport aux normes (Tatbestandsmerkmal), jamais par goût narratif. Va-et-vient constant entre norme et faits (Engisch) : on lit les faits, on devine la norme, on relit les faits avec la norme en tête.

Phase 1 — Lecture initiale

Lire l'énoncé entier une fois, sans annoter. Identifier le domaine (civil, pénal, administratif, social), repérer la question apparente et les indicateurs (« peut-il », « est-il en droit de », « quels sont ses droits »).

Phase 2 — Parties

Pour chaque personne : nom + qualification juridique (vendeur/acquéreur, bailleur/locataire, employeur/travailleur, lésé, autorité), statut (personne physique majeure/capable, personne morale avec forme et siège), domicile ou siège (compétence, for).

Une même personne peut cumuler plusieurs qualités (locataire et sous-locataire) : les lister séparément, chacune ouvre un rapport juridique distinct.

Phase 3 — Chronologie

Tableau Date | Événement | Portée juridique | Pièce. Toutes les dates, y compris celles déductibles. Calculer les intervalles qui portent un délai (notification, mise en demeure, prescription, résiliation). Identifier la date de référence (aujourd'hui) car les délais courent vers elle.

Phase 4 — Tri rechtserheblich

Quatre catégories :

  • A. Constitutifs — objectifs (qui, quoi, à qui, quand, où, comment, quel résultat) ; subjectifs (intention, négligence, bonne/mauvaise foi, connaissance) ; causalité (naturelle et adéquate).
  • B. Extinctifs / modificatifs — paiement, compensation, remise, résiliation, prescription, novation, cession.
  • C. Justificatifs — consentement, légitime défense, état de nécessité, mesures autorisées par la loi.
  • D. Procéduraux — domicile/siège, valeur litigieuse, conciliation préalable, qualité pour agir, épuisement des instances, délais.

Pour chaque fait, une seule question : « à quel élément de quelle norme ce fait correspond-il ? ». Pas de réponse → le fait sort du dossier analytique.

Phase 5 — Qualification préliminaire

Utiliser le vocabulaire légal, pas celui du client : « acheteur » et non « client », « restitution » et non « rendre », « résiliation » et non « annulation du bail ». Qualifier les actes (contrat de vente, mandat, acte unilatéral) et les choses (mobilière/immobilière, fongible, consomptible).

Phase 6 — Élimination

Écarter : émotions sans portée juridique, détails narratifs, répétitions, hypothèses du client. Conserver ce qui touche à l'intention, la connaissance, la bonne foi, ou à la crédibilité d'une partie — même si cela ressemble à un détail.

Sortie type

PARTIES
  A (bailleur, personne physique majeure, domicilié à Delémont)
  B (locataire, personne morale SARL, siège à Porrentruy)

CHRONOLOGIE
  12.03.2025 | signature du bail | contrat écrit, art. 253 ss CO | annexe 1
  01.06.2025 | hausse de loyer notifiée | forme, art. 269d CO | annexe 4

FAITS RECHTSERHEBLICH
  A. constitutifs : …   B. extinctifs : …   C. justificatifs : …   D. procéduraux : …

FAITS ÉCARTÉS
  « B était contrarié » — sans portée juridique (sauf si lésion, art. 21 CO)

MANQUES À CLARIFIER
  la notification de hausse (forme écrite ? motif ?) — décisif pour art. 269d CO

Pièges

  • Qualifier trop tôt (mélange fait/droit) et perdre des faits qui contredisaient la qualification.
  • Oublier un fait favorable à l'adversaire : il est dans le dossier, il faudra y répondre.
  • Combler un trou par une hypothèse (« le bail était probablement écrit »).
  • Laisser passer une date : dans beaucoup de cas suisses, le procès se gagne ou se perd sur un délai, pas sur un argument.
référence droit-suisse/references/methode-et-structure.md 6 Ko · 114 lignes

Méthode et structure — ce que les facultés suisses exigent

Sources utilisées (documents officiels, lus) :

  • UZH, RWI, Leitfaden Fallbearbeitung (2017) — https://rwi.uzh.ch/dam/jcr:0cf822da-b39d-4a3d-9178-143d5c4fd8af/2017-Leitfaden%20Fallbearbeitung.pdf
  • UZH, Grundregeln für das Verfassen rechtswissenschaftlicher Arbeiten (chaire Thouvenin) — https://www.ius.uzh.ch/dam/jcr:0da657c3-1a3a-45b6-901f-a5ea6f11ca54/UZH_Grundregeln%20f%C3%BCr%20das%20Verfassen%20rechtswissenschaftlicher%20Arbeiten.pdf
  • UNIBE, Faculté de droit, Richtlinien über Umfang und Form von Problemlösungen (trad. angl., état 30.04.2020) — structure et citation de référence.
  • UNIGE, Rédaction juridique de 3e année de Bachelor — organisation du travail (exemple : droit bancaire, Pr Liégeois) : soit résumé + analyse critique d'un arrêt non traduit, soit petit avis de droit ; évaluation = forme (notes, bibliographie)
  • fond (plan, raisonnement, doctrine, jurisprudence).
  • UNIFR (lettres/pédagogie) : guide formel APA — utile pour la présentation matérielle, pas pour la citation juridique (voir citation-suisse.md).
  • Manuels de référence : WYSS/KUMMER/HÄCKI, Suchen – Finden – Überzeugen. Arbeitstechniken im juristischen Alltag, 2e éd. Berne 2013 ; FORSTMOSER/OGOREK/ SCHINDLER, Juristisches Arbeiten, 7e éd. 2023 ; RYSER BÜSCHI et al., Juristische Arbeiten erfolgreich schreiben und präsentieren, 3e éd. 2024 ; BETSCHART/HAAS/ THURNHERR, Leitfaden zum Verfassen einer juristischen Arbeit, 5e éd. 2022.

1. Les deux genres

Genre But Style
Fallbearbeitung / cas pratique vérifier une qualification sur un état de fait donné Gutachtenstil strict (X könnte … si)
Avis de droit / Rechtsgutachten répondre à un mandant réel sur une question ouverte Gutachtenstil pour les points discutés, style assertif pour le reste
Mémoire / séminaire traiter une question de recherche thèse annoncée, discussion des opinions, position personnelle

Distinction posée par UZH : dans un avis, on argumente ; on ne remplace jamais un argument par une autorité (« selon le TF… » n'est pas un argument) ni par une affirmation (« de toute évidence… »). Aucune solution alternative présentée sans trancher : on choisit une voie et on la motive.

2. Processus de recherche (l'ordre compte)

  1. Comprendre la question — lire deux fois, repérer ce qui est demandé (qualification ? chances de succès ? rédaction d'un acte ?).
  2. Fixer l'état de fait — chronologie, parties, pièces, faits manquants. L'état de fait est « la base d'appréciation gravée dans le marbre » : on n'extrapole pas, on signale les manques.
  3. Qualifier — branche du droit, puis normes candidates (index du code, art. 1 CC pour les lacunes).
  4. Rechercher — dans cet ordre : loi en vigueur à la date des faits → jurisprudence (ATF d'abord, puis arrêts non publiés) → doctrine (commentaires, puis articles de revue, qui portent l'état actuel de la discussion) → matériaux si l'interprétation est en jeu.
  5. Trier et pondérer — hiérarchie : ATF > TF non publié > instance inférieure ; arrêt récent > ancien ; doctrine majoritaire ≠ argument d'autorité.
  6. Rédiger — plan en entonnoir, une question par chapitre, subsomption visible.
  7. Vérifier — chaque citation relue dans sa source ; bibliographie = exactement les ouvrages cités.

Erreur classique signalée par l'UZH : chercher un arrêt « qui ressemble » et le recopier. On part du texte de loi et on construit, l'arrêt vient confirmer ou nuancer.

3. Structure d'un avis de droit (format pratique, 5-15 pages)

Page de titre (destinataire, date, auteur, mention « confidentiel »)
I.   Mandat et questions de droit          (1 page max)
II.  État de fait                          (chronologie datée, sources des faits)
III. Droit applicable                      (normes, version, canton, voie de droit)
IV.  Analyse                               (une section par question)
     1. Question 1 — prétention de X contre Y
        1.1 Norme et conditions
        1.2 Condition a) : définition + jurisprudence + doctrine → subsomption
        1.3 Condition b) : …
        1.4 Délais / prescription / preuve
        1.5 Résultat pour la question 1
     2. Question 2 …
V.   Conclusion et recommandations         (réponse directe, risques, alternatives,
                                            prochaines étapes concrètes)
VI.  Sources                               (doctrine ; jurisprudence en notes)
Annexes éventuelles (pièces, calculs)

Variante académique (UZH) : titre, tables (romain), texte (arabe), annexe, déclaration d'authenticité. Plan alphanumérique A./I./1./a)/aa) ou décimal 1/1.1/1.1.1, jamais mixte ; pas de subdivision unique (un 1.1 exige un 1.2).

4. Structure d'une réponse de conseil (courte)

  1. Réponse en une phrase (oui / non / cela dépend de X).
  2. Base légale (1-2 références).
  3. Jurisprudence clé (1-2 arrêts, avec le point jugé).
  4. Ce qui ferait basculer la réponse (fait manquant, délai, canton).
  5. Prochaine étape concrète.

5. Critères d'évaluation (facultés suisses, résumé)

  • Forme : citation uniforme, notes, bibliographie, orthographe, abréviations, pagination, plan cohérent.
  • Fond : identification correcte des problèmes, structuration logique, traitement complet, argumentation autonome, usage à jour de la doctrine et de la jurisprudence, capacité à trancher.
  • UZH ajoute : ancrage dans le contexte, question de recherche explicite, discussion des opinions divergentes, position personnelle motivée.

6. Spécificités suisses à ne pas importer d'ailleurs

  • Pas de « Obersatz » obligatoire dans une consultation pratique ; le style assertif domine hors des points contestés.
  • Pas de distinction cassation/appel française ; on parle de recours (LTF), de recevabilité, de qualité pour recourir.
  • La doctrine suisse se cite par numéro de marge dans les commentaires, pas par page.
  • Le tribunal de première instance n'est pas « le tribunal » : toujours nommer l'autorité (Préfecture, Tribunal de première instance, Cour civile…).
  • L'interprétation se fait selon les canons reconnus (littéral, systématique, téléologique, historique) ; l'art. 1 CC ne fonde pas une « équité » générale.
référence droit-suisse/references/opencaselaw-mcp.md 7 Ko · 132 lignes

MCP OpenCaseLaw — référence outils (vérifié 11/2026, serveur v1.27.0)

Connexion

  • Endpoint : https://mcp.opencaselaw.ch/mcp — Streamable HTTP (SSE aussi sur /sse).
  • Aucune authentification, outils lecture seule, 4 workers uvicorn, health /health.
  • Déjà enregistré dans Hermes : mcp_servers.swiss-caselaw → outils mcp_swiss_caselaw_*. Activer sans redémarrer : /reload-mcp. Sinon, fallback script : python3 scripts/ocl.py tools | s "…" | law CO 41 --lang fr | do "Art. 41 OR" | cit "BGE 141 III 112" --pin 5.2
  • Local (hors ligne, 65 Go, 30-60 min) : voir https://github.com/jonashertner/opencaselaw

Corpus

1 050 000+ décisions (TF publiées et non publiées, TAF, TPF, TF des brevets, COMCO, 26 cantons, CEDH suisse + HUDOC), 5 546 lois fédérales (Fedlex SPARQL, DE/FR/IT), 16 400 lois cantonales (LexFind + scraping 23 cantons), 1 796 commentaires OnlineKommentar.ch + OpenLegalCommentary.ch, ~28 100 documents du Bundesblatt (Botschaften dès 1999, Vernehmlassungen depuis 1993), 9 900+ documents de pratique administrative, jurisprudence CJEU/CIJ/traités ONU.

Trouver une décision

search_decisions — full-text FTS5 + BM25, 1,05 M décisions.

Param Notes
query 3-8 termes, une requête par question. "phrase", AND/OR/NOT, Kündig*, regeste:mot, docket 6B_1234/2025. >500 chars = auto-condensé.
court bger (TF, tous), bge (ATF publiés), bvger, bstger, bpatger, mkg, bge_egmr, hudoc_ch, cjeu, icj, untb_*
canton CH (fédéral), ZH, VD, GE…
language de/fr/it/rm/en — ne pas filtrer par défaut (70 % des arrêts TF sont en allemand)
date_from / date_to date de l'arrêt
published_from / published_to date de publication (veille)
marked_for_publication true = arrêts signalés « zur Publikation vorgesehen »
chamber sous-chaîne (Zivilrechtliche, Abteilung V)
limit / offset / sort défaut 50 ; relevance, date_desc, date_asc, published_desc
fields compact (id, docket, date, court, langue) pour scanner ; full pour lire
include_pinpoint true : ajoute une E. satisfaisante sur les meilleurs résultats

Réponse : texte lisible + structuredContent (total, total_is_lower_bound, results[], result_set_id, has_more, next_offset). total = borne inférieure.

get_case_brief(case) — regeste, faits, 12 Erwägungen clés, dispositif, lois, autorité citationnelle, arrêts liés. Point d'entrée pour comprendre un arrêt. get_decisions(decision_ids[1-10], full_text=False) — lot ; préférer à 10 appels. get_decision(decision_id, full_text=True) — texte intégral (tronqué à 200 000 car.).

Citer juste

  • cite(reference, pinpoint, language) → citation_string (DE/FR/IT), canonical_url, markdown_link, rule_statement verbatim, pinpoint_status (verified / invalid + valid_pinpoints), close_matches si exists=false. Toujours passer par là ; ne jamais composer une citation à la main.
  • get_regeste(decision_id) — regeste officiel (≈54 % des arrêts fédéraux).
  • get_decision_structure(decision_id) — faits / Erwägungen numérotées / dispositif (fédéral seulement ; cantonal → get_decision).
  • get_erwaegung(decision_id, e_number) — texte verbatim d'une E. (une E. parente inclut ses sous-E.). C'est l'unité citable en pratique suisse.
  • find_relevant_erwaegung(decision_id, claim) — quelle E. soutient une affirmation ; renvoie confidence: high|medium|low, no_match, highlighted_snippet. Interdiction de deviner une E. si no_match/low → ne pas citer.
  • check_claim_support(claim, decision_id, pinpoint) — juge indépendant : supports: yes|partial|no|contradicts|unrelated + extraits.
  • attest_response — audit final d'un brouillon de réponse (5 contrôles).

Graphe de citations (9,65 M arêtes)

  • find_citations(decision_id, direction=both|outgoing|incoming) — confiance par arête.
  • find_appeal_chain(decision_id) — chaîne d'instances.
  • find_leading_cases(query?, law_code, article, court?, date_from/to, limit) — classement par autorité citationnelle. law_code en allemand (OR, ZGB).
  • analyze_legal_trend(...) — évolution d'un thème dans le temps.

Législation

  • get_law(sr_number|abbreviation, article, language, canton, as_of) — texte autoritatif (Fedlex pour le fédéral, LexFind pour le cantonal). as_of="YYYY-MM-DD" = édition historique fédérale. Résout les abréviations FR/IT et les anciens noms (CO, CC, CP, LTF, OPP 2, OG→BGG). Signale pending_changes.
  • search_laws(query, sr_number?, canton?, jurisdiction, language?, limit) — recherche par article (fédéral + cantonal entrelacés).
  • search_legislation(query, canton, active_only, fetch_top_n_texts) — lois entières par nom (33 000+). get_legislation(lexfind_id|systematic_number, canton) — texte complet.
  • browse_legislation_changes — veille des modifications.

Doctrine

  • get_commentary(abbreviation, article, language, canton?) — commentaire article par article (OnlineKommentar + OpenLegalCommentary + Kommentar SH VRG). abbreviation obligatoire (OR, pas CO ; pas de sr_number seul).
  • search_commentaries(query, abbreviation?, language?) — recherche ancrée article.
  • search_scholarship(query, source?, pub_type?, author?, year_min/max, sort, limit) — articles OA (sui generis…), commentaires OA, thèses (ZORA), rapports. Subsome search_commentaries.
  • get_scholarship, get_scholarship_full_text, find_scholarship_citing_statute, find_scholarship_citing_decision, list_scholarship_sources.

Matériaux & pratique

  • get_article_purpose(sr_number, article, language) — extraits verbatim de la Botschaft expliquant le but de l'article (interprétation historique).
  • search_materialien / search_botschaft(query, doc_type, year_min/max) — Botschaften, rapports, projets, Vernehmlassungen (verbatim, citation BBl).
  • get_article_history(sr_number, article) — arc complet : texte actuel + Botschaften + jurisprudence de principe + doctrine, chronologique. Très utile en une passe.
  • search_practice(query, source?, issuing_authority?, doc_type?, include_superseded) / get_practice(doc_id) — Wegleitungen, Kreisschreiben, Weisungen (BSV, FINMA, ESTV, SECO/ArG, SEM, BAG, BJ/SchKG, WEKO, OAK BV) + recommandations ONU.

Divers

list_courts, get_statistics, draft_mock_decision, generate_exam_question, search/fetch (alias ChatGPT deep research).

Pièges (constatés en test)

  1. find_leading_cases(law_code="CO", article="41") → renvoie des arrêts sur art. 41 BGG / CPP (141 IV 1, 144 IV 202, 138 IV 86). Avec "OR" → 131 III 12, 123 III 110 (RC). Les codes internes sont allemands.
  2. get_commentary(sr_number="220", article="41") → titre « Art. 41 220 », aucun commentaire. Utiliser abbreviation="OR".
  3. Beaucoup d'articles ne sont pas commentés en open access : le message « No open-access commentary on Art. X » est normal.
  4. get_doctrine("Art. 41 OR") : principal_rule = « Zivilklage, Schadenersatzforderung aus Geldwäscherei » (146 IV 211) — dérive vers le pénal. Croiser avec get_regeste.
  5. total_is_lower_bound: true dès que le compte dépasse le cap : ne pas annoncer un chiffre exact.
  6. cite() sur un pinpoint inexistant renvoie pinpoint_status: invalid + la liste valid_pinpoints : s'en servir plutôt que de tâtonner.
  7. Les décisions cantonales n'ont pas d'Erwägungen structurées : get_decision + citation par page/consid., pas get_erwaegung.
référence droit-suisse/references/questions-de-droit.md 2 Ko · 58 lignes

Formulation des questions de droit

La question brute du client (« qu'est-ce que je peux faire ? ») n'est jamais une question juridique. On la reformule avant de raisonner.

Formule

Qui veut quoi de qui, sur quelle base ? Wer will was von wem woraus?

  • Qui → demandeur avec sa qualité (créancier, locataire, lésé, actionnaire, autorité). Vérifier au passage la qualité pour agir (art. 59 CPC).
  • Quoi → prétention en termes juridiques : obtenir le paiement de X, faire constater la nullité, faire annuler, obtenir la restitution, la levée d'une opposition.
  • De qui → défendeur, bon défendeur (capacité d'être partie, représentation).
  • Sur quelle base → norme pressentie (à confirmer à l'étape 3).

Ordre des questions

  1. Préalables : qualité pour agir, compétence matérielle et territoriale, délais et prescription, forme (conciliation, écrit), représentation.
  2. Principales : le fond, une par prétention.
  3. Subsidiaires : ce qui ne se pose que si la principale échoue.

Une question préalable non résolue rend la principale inutile : elle passe en premier, y compris dans l'ordre de rédaction.

Questions multiples

Déclencheurs : plusieurs demandeurs ou défendeurs ; plusieurs actes juridiques (contrat + délit) ; plusieurs infractions ; plusieurs périodes. Traiter en sections séparées, chacune avec son syllogisme. Ne jamais fusionner deux prétentions dans une seule subsomption.

Actions envisageables en droit civil

  • Exécution : paiement, livraison, exécution en nature, accomplissement d'une forme.
  • Constatation : existence ou inexistence d'un droit, d'un contrat, d'une qualité.
  • Modification / anéantissement : résolution, résiliation, annulation pour vice du consentement, réduction (art. 21 CO), rescision.
  • Réparation : dommages-intérêts (art. 41 et 97 CO), tort moral (art. 49 CO), restitution de l'enrichissement (art. 62 CO).
  • Conservatoires : mesures provisionnelles (art. 261 ss CPC), séquestre (art. 271 ss LP).

Test de qualité d'une question

Une question est bien formulée si :

  • elle nomme les parties et la prétention (« A peut-il exiger de B le paiement de 4 200 fr. sur la base de l'art. 322 CO ? ») ;
  • deux juristes la comprendraient de la même manière ;
  • elle indique la base légale pressentie, même fausse — elle sera corrigée ;
  • elle est répondable avec les faits disponibles, ou signale explicitement le fait manquant.

Contre-exemple : « Quels sont les droits de A ? » — impossible à traiter, à découper.

référence droit-suisse/references/sources-et-outils.md 4 Ko · 74 lignes

Sources et outils — cartographie de recherche

Ce fichier répond à une seule question : pour ce type d'information, où est-ce que je vais, avec quel outil, et qu'est-ce que je peux en attendre ?

Accès : MCP swiss-caselaw (endpoint https://mcp.opencaselaw.ch/mcp, sans clé, 42 outils, lecture seule). Fallback sans rechargement du gateway : python3 scripts/ocl.py tools | s "…" | law CO 41 --lang fr | do "Art. 41 OR" | cit "ATF 141 III 112" --pin 5.2

Paramètres détaillés des 42 outils, corpus et pièges techniques : references/opencaselaw-mcp.md.

1. Quelle source pour quelle question

Je cherche… Source Outil Signal d'arrêt
le texte d'une disposition Fedlex / LexFind get_law, search_laws texte obtenu, version datée
le texte d'il y a X années Fedlex (éditions) get_law(as_of=…) snapshot_date
la règle de principe sur un article jurisprudence TF find_leading_cases(law_code, article) regeste lisible
un arrêt sur des faits précis jurisprudence search_decisions 3-5 résultats convergents
la phrase exacte à citer arrêt get_erwaegung(decision_id, e_number) texte verbatim
quel considérant soutient une thèse arrêt find_relevant_erwaegung(decision_id, claim) confidence: high
l'interprétation doctrinale OnlineKommentar get_commentary, search_commentaries un commentaire daté
la controverse académique articles OA, thèses search_scholarship 2-3 auteurs divergents
le but de la norme Botschaften get_article_purpose, search_botschaft extrait verbatim + BBl
l'évolution d'un article tout combiné get_article_history arc complet en un appel
comment l'administration applique Wegleitungen, circularies search_practice document daté + autorité
ce qui cite un arrêt graphe (9,65 M arêtes) find_citations, find_appeal_chain incoming_citations
l'état du droit cantonal LexFind (26 cantons) search_legislation, get_legislation article + canton + langue

2. Combien de sources suffisent

Pas de quota, un critère : chaque affirmation décisive a une source, et chaque source a été lue. En pratique :

  • question simple et réglée → 1 norme + 1 à 3 arrêts ;
  • question contestée → norme + arrêts divergents + 2-3 doctrines ;
  • question d'interprétation → ajouter la Botschaft et l'historique ;
  • question d'application administrative → ajouter la pratique publiée.

S'arrêter quand une source supplémentaire ne changerait pas la réponse. Continuer à chercher après ce point, c'est du temps perdu ; s'arrêter avant, c'est un avis fragile.

3. Limites du corpus (à annoncer, jamais à combler)

  • Doctrine : 1 796 commentaires open access (OnlineKommentar, OpenLegalCommentary). Pas le Commentaire romand, ni les BSK/Zürcher/Berner Kommentar, ni les revues payantes. Beaucoup d'articles ne sont commentés nulle part en accès libre — le message « No open-access commentary » est normal, pas une erreur.
  • Jurisprudence : publiée et non publiée fédérale, la plupart des cantons. Certains cantons publient peu, ou avec retard.
  • Droit cantonal : 26 cantons via LexFind, mais l'exhaustivité des règlements communaux n'est pas garantie.
  • Langues : environ 70 % des arrêts fédéraux en allemand, 25 % en français, 5 % en italien. Une recherche monolingue rate des arrêts.

4. Pièges d'outil (constatés en test)

  1. Codes internes en allemand. law_code="CO" renvoie des arrêts sur l'art. 41 BGG/CPP ; law_code="OR" renvoie les bons. Idem CC→ZGB, CP→StGB, Cst→BV.
  2. get_commentary veut abbreviation, pas sr_number seul (sinon « Art. 41 220 », introuvable).
  3. total est une borne inférieure (total_is_lower_bound) : « plus de 150 arrêts », pas « 158 ».
  4. get_doctrine peut dériver : croiser son principal_rule avec get_regeste.
  5. find_relevant_erwaegung est sensible aux accents et à la langue. Une claim sans accents tombe en confidence: low et rate le bon considérant.
  6. cite() valide l'existence, pas le soutien. Deux contrôles distincts : cite pour la forme, check_claim_support pour le fond.
  7. Décisions cantonales : pas d'Erwägungen structurées → get_decision et citation par page/consid., pas get_erwaegung.
  8. Lot : get_decisions([…]) pour 10 arrêts d'un coup, fields="compact" pour scanner avant de lire.
référence droit-suisse/references/subsomption.md 3 Ko · 78 lignes

La subsomption

Subsomption = rattacher un état de fait concret à une catégorie juridique abstraite. C'est l'opération centrale ; tout le reste (style, citations) la sert.

Les 4 temps (pour chaque élément contesté)

  1. Question — « [Élément] est-il réalisé au sens de l'art. [X] [loi] ? »
  2. Définition — texte de loi d'abord, puis jurisprudence (ATF … consid. …), puis doctrine si l'opinion est discutée. La définition doit être opérationnelle : assez précise pour trancher le cas, pas un catalogue.
  3. Subsomption — confronter chaque fait retenu à la définition, séparément, en nommant les pièces. C'est ici qu'on démontre, pas qu'on affirme.
  4. Conclusion partielle — la condition est réalisée / ne l'est pas, en une phrase.

Problématique ou non

Type Traitement Style
Élément évident, non contesté 1-2 phrases assertif
Élément discuté en doctrine/jurisprudence 4 temps complets Gutachtenstil
Élément décisif mais non discuté 4 temps allégés, insistance sur les faits mixte

Erreur classique : traiter tous les éléments avec la même longueur. Le lecteur doit voir immédiatement où est le problème du cas.

Deux opinions, deux résultats

Fraglich ist, ob … / La question est de savoir si …
  Opinion 1 (auteurs, ATF) → appliquée au cas : résultat A
  Opinion 2 (auteurs, ATF) → appliquée au cas : résultat B
  Arguments pour 1 / contre 1 →  prise de position motivée
  Résultat retenu : …

Si les deux opinions mènent au même résultat : les exposer sans argumenter, dire que la question peut rester ouverte, et passer. Ne pas fabriquer une controverse.

Canons d'interprétation (ordre admis par le TF)

  1. Littéral — sens des mots, usage courant et technique, texte dans les trois langues officielles (une divergence est un argument).
  2. Systématique — place dans la loi, liens avec d'autres dispositions, économie du texte.
  3. Téléologique — but de la norme, ratio legis (souvent via la Botschaft : get_article_purpose).
  4. Historique — travaux préparatoires, évolution de la disposition (get_article_history).

Aucun canon n'est prioritaire par principe ; le TF pondère. Un argument d'interprétation sans source (ni texte, ni message, ni arrêt) n'est pas un argument.

Lacunes et art. 1 CC

  • Lacune proprement dite : le texte ne règle pas le cas → le juge statue comme le ferait le législateur (art. 1 al. 2 CC), en s'appuyant sur la doctrine et la jurisprudence établies (al. 3).
  • Lacune improprement dite : le texte règle le cas mais le résultat est choquant → interprétation correctrice, pas création de norme.
  • L'art. 1 CC ne fonde pas une équité générale : il faut démontrer le silence du texte.

Fardeau de la preuve et délais

Ce sont deux conditions déguisées qu'on oublie dans 80 % des analyses :

  • Qui doit prouver quoi (art. 8 CC ; règles spéciales en procédure). Un droit existant mais improuvable est un droit perdu.
  • Prescription (art. 60, 67, 127 ss CO ; délais spéciaux) et péremption : calculer la date, pas seulement citer l'article.

Auto-contrôle avant de livrer

  • [ ] Chaque condition de la norme a été passée en revue, même celles qui vont de soi
  • [ ] Chaque définition est sourcée, chaque subsomption nomme des faits
  • [ ] Chaque conclusion partielle répond à sa question, dans l'ordre
  • [ ] Aucune conclusion globale qui ne découle pas des conclusions partielles
gabarit droit-suisse/templates/avis-de-droit.md 2 Ko · 68 lignes

Avis de droit — [Intitulé court]

Destinataire : [nom] · Auteur : [nom] · Date : [jj.mm.aaaa] Confidentiel — ne constitue pas une consultation juridique au sens de la LSA

I. Mandat et questions de droit

[Qui demande quoi, dans quel but, sur la base de quelles pièces.]

  1. [X] peut-il prétendre à [prétention] contre [Y] sur la base de [norme] ?
  2. [Question subsidiaire : délai, prescription, forme, compétence.]

Réserve : analyse fondée sur les seuls faits communiqués ; tout fait nouveau peut modifier la conclusion.

II. État de fait

Date Fait Source
[jj.mm.aaaa] [fait] [contrat, courrier, témoignage]

Faits non établis / à clarifier : [liste — ne pas raisonner dessus sans le dire]

III. Droit applicable

  • Branche : [civil / pénal / administratif / social]
  • Normes : [art. X al. Y LE ; version en vigueur au jj.mm.aaaa]
  • Droit cantonal : [loi d'application, procédure]
  • Voie de droit et autorité : [compétence, délai]

IV. Analyse

1. [Question 1 — formulation « qui veut quoi de qui, sur quelle base »]

1.1 Norme et conditions. [Texte de l'art. X al. Y LE ; conditions a), b), c).]

1.2 Condition a) — [intitulé]. [Définition, appuyée sur jurisprudence/doctrine.]¹ [Subsomption : les faits A et B remplissent la condition parce que …]

1.3 Condition b) — [intitulé]. [… ; si le point est contesté, exposer la position 1, la position 2, les arguments, puis trancher.]

1.4 Délais et prescription. [Point de départ, interruption, échéance.]

1.5 Résultat. [X dispose / ne dispose pas d'un droit à …]

2. [Question 2]

V. Conclusion et recommandations

  1. [Réponse directe.]
  2. [Risques principaux, chances, points à consolider.]
  3. [Prochaines étapes concrètes, avec délais.]

VI. Sources

Doctrine - AUTEUR PRÉNOM, in : [Commentaire], [éd.], [année], n° [x] ad art. [y] [loi].

Jurisprudence (en notes de bas de page dans le texte) - ATF [vol] [ch.] [page] consid. [x].


¹ ATF 141 III 112 consid. 5.2 ; BGE 131 III 12 E. 4.1 ; AUTEUR, in : Commentaire romand, CO, 2e éd. 2020, n° 12 ad art. 41 CO.

gabarit droit-suisse/templates/gabarit-general.md 3 Ko · 141 lignes

Gabarit général — une seule structure, trois densités

Règle : même ossature, même ordre, toujours. Seul le volume change. Tu dois pouvoir ouvrir n'importe quelle sortie juridique et retrouver les six blocs aux mêmes endroits.


Bloc 1 — QUESTION

Une phrase, reformulée en termes juridiques.

« [Qui] peut-il [quoi] à l'encontre de [qui] sur la base de [norme pressentie] ? »

Si plusieurs prétentions : les numéroter ici, et les traiter dans le même ordre au bloc 4.


Bloc 2 — FAITS

Trois sous-ensembles, dans cet ordre :

  • Établis — chronologie datée, parties qualifiées (bailleur/locataire, vendeur/acquéreur…).
  • Manquants — ce qu'il faut pour trancher et qu'on n'a pas.
  • Hypothèses retenues — ce qu'on assume explicitement pour avancer, et pourquoi.

Jamais de fait inventé pour que la solution tienne.


Bloc 3 — RÈGLES

  • Norme : article + alinéa + lettre, loi, version applicable et date.
  • Jurisprudence : arrêts avec considérant, du plus autorisé au moins autorisé.
  • Doctrine : uniquement si elle ajoute (controverse, précision).
  • Matériaux / pratique : seulement si l'interprétation ou l'application est en jeu.

Une ligne par source, forme normalisée (voir citation-suisse.md).


Bloc 4 — ANALYSE

Une section par question du bloc 1, dans le même ordre. Pour chaque condition de la norme :

  1. énoncé de la condition ;
  2. définition sourcée ;
  3. confrontation aux faits, point par point ;
  4. résultat partiel (remplie / non remplie).

Les éléments évidents tiennent en une phrase. Les éléments contestés prennent l'essentiel du texte. Si deux opinions divergent : les exposer, puis trancher.

Ne pas oublier ce qui annule tout le reste : délais, prescription, preuve.


Bloc 5 — CONCLUSION

  • Réponse directe à la question du bloc 1 (oui / non / dépend de X).
  • Risques et points fragiles.
  • Prochaines étapes concrètes, avec les échéances qui courent.

Pas de pourcentage de chances inventé. Pas de « je pense que ».


Bloc 6 — SOURCES

  • En note de bas de page pour un document rédigé, en liste finale pour une réponse de chat.
  • Uniquement ce qui est cité, tout ce qui est cité.
  • Formes exactes : references/citation-suisse.md.
  • Chaque référence passée par cite() ; chaque affirmation décisive passée par check_claim_support().

Les trois densités

A. Réponse courte (10-15 lignes, chat)

**Réponse.** [une phrase]

**Base.** art. X al. Y LE (+ version)
**Jurisprudence.** ATF … consid. … — [le point jugé, en une ligne]

**Ce qui ferait basculer.** [fait manquant / délai / canton]
**Prochaine étape.** [action concrète, avec échéance]

Les six blocs sont tous là, compressés. On ne saute jamais le bloc 2 : sans faits, il n'y a pas de réponse, seulement une règle générale.

B. Note d'analyse (1-2 pages, dossier interne)

# [Objet]

**Question.** …

**Faits.** (5-10 lignes : établis / manquants)

**Règles.** (liste : norme, arrêts, doctrine)

**Analyse.**
1. [condition a] — définition, subsomption, résultat
2. [condition b] — …
3. Délais / prescription / preuve

**Conclusion.** [réponse + risques + prochaines étapes]

**Sources.** [notes ou liste]

C. Avis de droit (5-15 pages, client)

I.   Mandat et questions        (1 page)
II.  État de fait               (chronologie, pièces, manques)
III. Droit applicable           (normes, versions, voie de droit)
IV.  Analyse                    (une section par question)
V.   Conclusion et recommandations
VI.  Sources                    (doctrine en liste, jurisprudence en notes)

Version développée et remplissable : templates/avis-de-droit.md.


Contrôle de cohérence (30 secondes, avant envoi)

  • [ ] Le bloc 5 répond exactement à la phrase du bloc 1
  • [ ] Chaque condition du bloc 3 apparaît au bloc 4
  • [ ] Aucune source au bloc 6 qui ne soit citée dans le texte, et inversement
  • [ ] La densité correspond au destinataire, pas à l'envie de détailler
  • [ ] La réserve (délai, conseil juridique) est présente quand elle s'impose
gabarit droit-suisse/templates/note-courte.md 2 Ko · 73 lignes

Note courte — réponse rapide ou courrier

Densité la plus compressée du gabarit en six blocs. Pour une question ponctuelle, un courrier, ou une réponse de chat. Les six blocs restent présents : on compresse, on ne supprime pas.

**Question**
[reformulée en termes juridiques, une phrase]

**Réponse**
[directe : oui / non / dépend de X — avec la nuance, pas sans elle]

**Fondement**
- art. X al. Y [loi], version en vigueur au [jj.mm.aaaa]
- [ATF / arrêt] consid. [n] — [le point jugé, en une ligne]

**Réserves**
[faits manquants · limites du corpus · évolution possible · délai qui court]

**Prochaine étape**
[action concrète, avec l'échéance]

**Sources**
[uniquement ce qui est cité ci-dessus]

Quand l'utiliser

  • Question ponctuelle dont la réponse tient en dix lignes.
  • Courrier : la même structure, en prose continue, sans les intitulés en gras.
  • Réponse de chat où l'utilisateur veut le fond, pas un dossier.

Quand ne pas l'utiliser

  • Plusieurs prétentions distinctes → note d'analyse (gabarit-general.md).
  • Destinataire externe (client, assurance, autorité) → avis de droit (avis-de-droit.md).
  • Question dont la réponse dépend d'une pièce non lue → le dire d'abord, répondre ensuite.

Règles

  • Ne jamais sauter les réserves. C'est la partie qui protège : faits manquants, corpus incomplet, délai. Une réponse courte sans réserve est un avis tronqué.
  • La ligne « Prochaine étape » n'est pas décorative : sans elle, la note est une consultation, pas une réponse.
  • Formes de citation : references/citation-suisse.md. Vérification : cite() puis check_claim_support() sur l'affirmation décisive.

Exemple

**Question**
Le bailleur peut-il augmenter le loyer en cours de bail pour hausse des charges ?

**Réponse**
Non en cours de bail, sauf clause contractuelle expresse ou réserve de la hausse des
charges dans le contrat ; à défaut, l'adaptation passe par la prochaine échéance légale.

**Fondement**
- art. 269a let. b CO (protection contre les loyers abusifs)
- [arrêt de référence] consid. [n] — [point jugé]

**Réserves**
Contrat non lu : la clause de réserve de charges est décisive. Vérifier aussi le
formulaire officiel cantonal et le délai de contestation.

**Prochaine étape**
Envoyer le contrat pour lecture, puis calculer l'échéance de contestation.

**Sources**
[à compléter après lecture du contrat]
gabarit droit-suisse/templates/plans-analyse.md 2 Ko · 73 lignes

Plans d'analyse — FR et DE

A. Structure francophone (UNIL, consultation, brevet)

I.   ANALYSE DES FAITS
     1. Parties et qualifications juridiques
     2. Chronologie
     3. Faits juridiquement pertinents (A/B/C/D)
     4. Faits manquants / à clarifier

II.  QUESTIONS JURIDIQUES
     A. Préalables (qualité, compétence, délais, forme)
     B. Principales (une par prétention)
     C. Subsidiaires

III. RÉPONSE HYPOTHÉTIQUE
     « A peut obtenir X de B sur la base de l'art. … si … »

IV.  CONDITIONS D'APPLICATION
     1. Condition a) — question / définition / subsomption / conclusion partielle
     2. Condition b) — …
     3. Délais, prescription, preuve

V.   CONCLUSION
     Réponse directe, portée pratique, risques

VI.  RECOMMANDATIONS (si consultation)
     Prochaines étapes, preuves à réunir, délais qui courent, chances (qualitatif)

B. Structure germanophone (Gutachtenstil, examen, mémoire)

Titel / Fallfrage

Obersatz
  « A könnte gegen B einen Anspruch auf X aus Art. … haben, wenn … »

I.   Sachverhalt (nur das Rechtserhebliche)
II.  Anspruchsvoraussetzungen
     1. Voraussetzung a)
        – Fragestellung
        – Definition (Gesetz, BGE … E. …)
        – Subsumtion
        – Zwischenergebnis
     2. Voraussetzung b) …
III. Rechtsfolge
IV.  Ergebnis / Fazit

En droit pénal, remplacer II par la séquence : Tatbestand (objektiv → subjektiv) → Rechtswidrigkeit → Schuld → Strafzumessung → Fazit, une section par infraction, dans l'ordre : infractions les plus graves d'abord, puis concours (art. 49 CP).

C. Version courte (chat, note interne, réponse au client)

1. Réponse (une phrase : oui / non / dépend de X)
2. Base légale (1-2 références avec alinéa)
3. Jurisprudence clé (1-2 arrêts + le point jugé)
4. Ce qui ferait basculer la réponse (fait manquant, délai, canton)
5. Prochaine étape concrète

Rappels de forme

  • Pagination : tables en chiffres romains, corps en arabes.
  • Un niveau de subdivision suppose au moins deux sous-points (pas de 1.1 sans 1.2).
  • Une idée par paragraphe ; les citations en note, jamais dans le corps.
  • Les faits au passé, le raisonnement au conditionnel, la conclusion au présent.
script droit-suisse/scripts/ocl.py 3 Ko · 118 lignes
#!/usr/bin/env python3
"""ocl.py - appel direct du MCP OpenCaseLaw (Swiss caselaw) sans client MCP.

Le serveur MCP public expose du JSON-RPC 2.0 en Streamable HTTP, sans auth.
Ce script utilise curl (urllib est bloqué en TLS sortant sur le VPS).

Usage:
  ocl.py tools
  ocl.py call <tool> '<json-args>'
  ocl.py s "requete" [--court bger] [--canton VD] [--limit 5] [--from 2020-01-01]
  ocl.py law "CO" 41 [--lang fr]
  ocl.py do "Art. 41 OR"
  ocl.py cit "BGE 141 III 112" --pin 5.2
  ocl.py raw '{"jsonrpc":...}'
"""
import json
import subprocess
import sys

URL = "https://mcp.opencaselaw.ch/mcp"


def rpc(method, params=None, timeout=120):
    body = {"jsonrpc": "2.0", "id": 1, "method": method}
    if params is not None:
        body["params"] = params
    out = subprocess.run(
        ["curl", "-s", "--max-time", str(timeout - 5), "-X", "POST", URL,
         "-H", "Content-Type: application/json",
         "-H", "Accept: application/json, text/event-stream",
         "-d", json.dumps(body)],
        capture_output=True, text=True).stdout
    for line in out.splitlines():
        if line.startswith("data: "):
            return json.loads(line[6:])
    try:
        return json.loads(out)
    except Exception:
        return {"error": "unparsable response", "raw": out[:500]}


def call(tool, args):
    r = rpc("tools/call", {"name": tool, "arguments": args})
    if "error" in r:
        return r
    res = r.get("result", {})
    if res.get("structuredContent") is not None:
        return res["structuredContent"]
    content = res.get("content") or [{}]
    txt = content[0].get("text", "")
    try:
        return json.loads(txt)
    except Exception:
        return txt


def main(argv):
    if len(argv) < 2:
        print(__doc__)
        return 1
    cmd = argv[1]
    if cmd == "tools":
        r = rpc("tools/list")
        for t in r["result"]["tools"]:
            print(t["name"], "-", (t.get("description") or "")[:90].replace("\n", " "))
        return 0
    if cmd == "call":
        print(json.dumps(call(argv[2], json.loads(argv[3])), ensure_ascii=False, indent=1))
        return 0

    args, flags, i = {}, {}, 2
    while i < len(argv):
        a = argv[i]
        if a.startswith("--"):
            k = a[2:]
            if i + 1 < len(argv) and not argv[i + 1].startswith("--"):
                flags[k] = argv[i + 1]
                i += 2
            else:
                flags[k] = True
                i += 1
        else:
            args.setdefault("_pos", []).append(a)
            i += 1
    pos = args.get("_pos", [])

    if cmd == "s":
        a = {"query": pos[0], "limit": int(flags.get("limit", 10)), "fields": "compact"}
        for k_src, k_dst in (("court", "court"), ("canton", "canton"), ("lang", "language"),
                             ("from", "date_from"), ("to", "date_to"), ("sort", "sort"),
                             ("chamber", "chamber")):
            if k_src in flags:
                a[k_dst] = flags[k_src]
        print(json.dumps(call("search_decisions", a), ensure_ascii=False, indent=1))
        return 0
    if cmd == "law":
        a = {"abbreviation": pos[0], "article": pos[1]}
        a["language"] = flags.get("lang", "de")
        if "canton" in flags:
            a["canton"] = flags["canton"]
        print(call("get_law", a))
        return 0
    if cmd == "do":
        print(json.dumps(call("get_doctrine", {"query": pos[0]}), ensure_ascii=False, indent=1))
        return 0
    if cmd == "cit":
        a = {"reference": pos[0], "language": flags.get("lang", "fr")}
        if "pin" in flags:
            a["pinpoint"] = flags["pin"]
        print(json.dumps(call("cite", a), ensure_ascii=False, indent=1))
        return 0
    print("commande inconnue:", cmd)
    return 2


if __name__ == "__main__":
    sys.exit(main(sys.argv))