CommunityRecherche & Datenanalysegithub.com

danepps/recherche-juridique

Erstelle oder erweitere eine Zotero-Sammlung mit verifizierten Quellen für ein Projekt – finde Quellen (Web, Kataloge, HeinOnline über eine institutionelle Bibliotheks-Proxy), füge sie mit vollständigen Metadaten über die Zotero-Web-API hinzu und führe dann eine deterministische Anti-Halluzinations-Prüfung durch, die jeder hinzugefügte Eintrag bestehen muss. Auslösen, wenn der Benutzer Quellen in Zotero sammeln möchte („Erstelle eine Bibliothek für X“, „Füge die Bücher/Artikel zu X zu meinem Zotero hinzu“, „Befülle <Sammlung> mit …“).

Was ist recherche-juridique?

Diese Fähigkeit ermöglicht es einem KI-Agenten, eine vollständige, verifizierte Quellensammlung in Zotero für ein bestimmtes Projekt anzulegen oder zu erweitern. Sie implementiert eine zweistufige Verteidigung gegen erfundene Quellen: Zuerst wird jeder Kandidat anhand einer echten Quelle überprüft, bevor er hinzugefügt wird, und danach wird ein deterministischer Prüfmechanismus ausgeführt, der jeden Eintrag mit mehreren unabhängigen Katalogen (Open Library, Google Books, Harvard Library, Library of Congress) oder CrossRef abgleicht. Die Fähigkeit unterstützt die Web-Suche, Open Library, Wikipedia-Infoboxen, Verlagsseiten und speziell HeinOnline über einen institutionellen Proxy. Sie betont stark die Vermeidung von Duplikaten, indem sie den gesamten Bestand der Zotero-Bibliothek vor jeder Aktion einliest und konsistent nach Duplikaten sucht. Der Workflow ist streng: Der gesamte Bestand wird zuerst eingelesen, dann werden Kandidaten gesucht und gefiltert, bevor sie verifiziert und hinzugefügt werden, und schließlich wird der deterministische Check durchgeführt – ohne Ausnahme. Built in checks interagieren als Python-Skripte im Hintergrund.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/danepps/legal-research-skills/tree/HEAD/claude-code/skills/build-library

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Bibliothek aufbauen

Befülle eine Zotero-Sammlung mit Quellen für ein Projekt. Zweistufige Verteidigung gegen fabrizierte Quellen: (1) jeden Kandidaten vor dem Hinzufügen gegen eine echte Quelle überprüfen; (2) nach dem Hinzufügen den mitgelieferten deterministischen Prüfer ausführen — kein Eintrag wird ungeprüft ausgeliefert. Alle globalen Autoritätsregeln (niemals ein Zitat erfinden; Unsicherheit kennzeichnen) gelten durchgängig.

0. Schritt Null – lies die gesamte Bibliothek, bevor du irgendetwas anderes machst

Bevor du den Umfang festlegst, bevor du suchst, bevor du einen einzigen Kandidaten vorschlägst, sichere die Zielbibliothek und lies alles davon:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/build-library/library_inventory.py --group <ID>   # or --user
python3 ${CLAUDE_PLUGIN_ROOT}/skills/build-library/library_inventory.py --group <ID> --grep <Begriffe>

Eine Zeile pro Top-Level-Eintrag: Jahr, PDF-oder-nicht, Autoren, Titel, Veröffentlichung, Eintragsschlüssel. Eine Bibliothek mit 100 Einträgen liegt weit unter 3k Token. Es gibt keinen budgetären Grund, dies zu überspringen, und keinen Ersatz dafür. Bei einer großen Bibliothek (Tausende von Einträgen) speichere den vollständigen Dump in einer Datei und lies die relevanten --grep-Auszüge plus die allgemeine Form – aber der Koordinator bleibt für die Prüfung verantwortlich, und ein Auszug, der nie durchsucht wurde, ist kein Beleg für Abwesenheit.

Dies ist Schritt Null und nicht Teil des Duplikatschecks, weil die Kenntnis der Bibliothek ändert, was du suchst. Ein Durchlauf, der dies überspringt, wird Dinge vorschlagen, die der Benutzer bereits besitzt, sie als "neu identifiziert" beschreiben und falsche Behauptungen über Lücken in der Sammlung aufstellen.

Vier harte Regeln, jede aus einem echten Fehler (2026-08-01, bei einer Gruppenbibliothek mit 105 Einträgen):

  1. Delegiere das Inventar oder den Duplikatscheck niemals an einen Unteragenten. Ein Recherche-Unteragent berichtete, die Gruppe enthalte „nur die 13 aufgeführten Einträge plus eine Handvoll nicht verwandter Werke.“ Sie enthielt 105. Der Koordinator glaubte ihm und erstellte drei Duplikate. Unteragenten sind in Ordnung zum Finden von Kandidaten; der Koordinator trägt die Verantwortung für die Kenntnis der Bibliothek.
  2. Behandle einen negativen Befund eines Unteragenten als unbestätigt. „Ich habe geprüft und es ist nicht da“ ist genau die Behauptung, die Unteragenten falsch hinbekommen, weil Abwesenheit aus einer engen Suche heraus nicht falsifizierbar ist. Überprüfe jede Behauptung „nicht in der Bibliothek“ anhand deines eigenen Inventars.
  3. Jedes Hinzufügen durchläuft die Prüfung, auch späte. Zwei der drei Duplikate wurden ganz am Ende der Sitzung hinzugefügt, aufbauend auf Fußnoten in einem soeben gelesenen Artikel – außerhalb der Hauptpipeline, so dass sie die Prüfung vollständig umgingen. Kein Kandidat ist zu klein oder zu spät für die Prüfung; durchsuche das Inventar, das du bereits hast.
  4. Gib das Inventar weiter. Jeder Unteragent, der gebeten wird, Quellen zu finden, erhält die tatsächliche Liste (oder einen gefilterten Auszug) in seinen Prompt eingefügt – niemals eine Anweisung, sie selbst zu überprüfen.

Die Bibliothek ist auch ein Beweismittel. Wenn die Aufgabe lautet „was fehlt“, sagt dir das, was der Benutzer bereits besitzt, was ihm wichtig ist, und formuliert die Antwort oft neu. Bei dem Durchlauf, der diese Regel auslöste, stellte sich heraus, dass die Bibliothek des Benutzers ein tiefes Regal mit strafrechtlicher Wissenschaft zu genau den Themen enthielt, die das Memo gerade als unbehandelt beschrieben hatte – was den Befund von „niemand hat darüber geschrieben“ zu „diese beiden Literaturen zitieren sich nicht gegenseitig“ änderte. Lies das Inventar für das, was es über das Projekt aussagt, nicht nur für den Duplikatsabgleich.

1. Zotero-Infrastruktur

Die zotero / zotero-group MCP-Werkzeuge sind schreibgeschützt (gut für Duplikatsprüfungen und Suche). Alle Schreibvorgänge erfolgen über die Zotero-Web-API v3 mit dem Schlüssel aus dem zotero Eintrag in ~/.claude.json (env.ZOTERO_API_KEY; überprüft auf Schreibzugriff auf die persönliche Bibliothek, <USER_ID>, und alle verwendeten Gruppenbibliotheken).

  • Sammlungen: GET /users/<USER_ID>/collections?limit=100 → finde den Zielschlüssel; erstelle mit POST /collections, wenn der Benutzer eine neue möchte (Namen zuerst bestätigen).
  • Duplikatscheck – Inventar zuerst (§0), Kandidatenliste prüfen (§2a), Absicherung vor dem Hinzufügen: lies die gesamte Bibliothek im Voraus (§0); dedupliziere die Kandidatenliste vor jeglicher Verifizierung oder PDF-Arbeit (§2a); dann führe eine leichte finale Prüfung direkt vor dem POST /items als Absicherung durch – sie fängt Einträge, die früher im selben Durchlauf hinzugefügt wurden, und Kollisionen mit exakten Ausgaben, die die früheren Prüfungen übersehen haben. Für einmalige Nachforschungen während des Durchlaufs ist library_inventory.py --grep <Begriffe> besser als mcp__zotero__zotero_search_items, weil es die Liste durchsucht, die du bereits hast, anstatt eine frische, enge Abfrage zu stellen.
  • Einträge erstellen: POST /users/<USER_ID>/items mit einem JSON-Array (≤50/Anfrage). Überprüfe die success/failed-Maps der Antwort. Hole eine leere Vorlage von GET https://api.zotero.org/items/new?itemType=book, wenn du dir bei den Feldern unsicher bist.
  • Konventionen: Illustratoren/„mit“-Angaben → contributor-Ersteller plus eine extra-Notiz (Zotero-Bücher haben keine Illustratorenrolle); Herausgeber → editor; setze den tatsächlichen Verlag/Imprint der Ausgabe (z. B. Sentinel, nicht „Penguin“); vollständiges Veröffentlichungsdatum, wenn verifiziert, andernfalls Jahr; immer ISBN für Bücher, immer DOI für Artikel.

1a. Metadaten von Law-Review-Artikeln – Korrekturen für Zotero-Connector-Defekte (Autor, 2026-07-16)

Claude erstellt Einträge über die Web-API, so dass es diese richtig hinbekommen kann, wo der Zotero-Connector des Benutzers sie zuverlässig falsch macht. Wende dies auf jeden hinzugefügten Law-Review-Artikel an; Hein (§4a) zeigt die korrekten Daten, also übernimm die Felder von dort.

  1. Führendes "The"/"A"/"An": belasse den Artikel in natürlicher Vorposition – Titel The Common Law, niemals die sortierungsinvertierte Version des Connectors Common Law, The.
  2. Jahr = das Jahr der Ausgabe, nicht der Bandspanne. Der Connector greift oft die gesamte Datumsrange des Bandes; verwende das spezifische Ausgabejahr, das Heins Zitat angibt.
  3. Abschließendes Fragezeichen: behalte es bei – Are Judges Political?, nicht Are Judges Political.
  4. Kursivschrift in Titeln: das Zotero-Titelfeld akzeptiert Inline-HTML – umschließe Fallnamen (und andere nach Bluebook kursivierte Begriffe) in <i>…</i>, z.B. The Real Meaning of <i>Erie</i> oder Rethinking <i>Chevron</i> Deference. Zotero rendert und exportiert diese als Kursivschrift (dies ist das <i>Fallname</i>, das der Benutzer sonst von Hand hinzufügt).
  5. Entferne angehängte Typ-/Symposiums-Bezeichnungen aus dem Titel – bewahre aber echte Bluebook-Bezeichnungen im extra-Feld. Der Connector hängt Bezeichnungen an den Titel an – Essay, Comment, Note, Foreword, Book Review, Symposium: <Name>, usw. Behalte nur den tatsächlichen Titel des Artikels, so wie er im Werk / im Bluebook-Zitat erscheint. Wenn du dir unsicher bist, ob der nachgestellte Text ein echter Untertitel oder eine angehängte Bezeichnung ist, überprüfe die erste Seite.
    • Studentische Anmerkungen und Kommentare (und andere Bezeichnungen, die Bluebook zwischen Autor und Titel druckt – Recent Development, Essay, Foreword, Book Review, usw.): verwerfe die Bezeichnung nicht einfach. Zeichne sie im extra-Feld des Eintrags als genre:-Zeile auf – genre: Note für eine studentische Anmerkung, genre: Comment für einen Kommentar (Titel; der Stil setzt sie unabhängig davon groß, aber speichere sie sauber). Der Bluebook-Stil fügt sie dann an der richtigen Stelle ein (Jane Doe, Note, <i>Title</i>, 120 Harv. L. Rev. 1627 (2007)). Entferne sie aus dem Titel wie oben und füge die genre:-Zeile hinzu – beides gehört bei diesen Stücken zusammen.
    • Anonyme studentische Anmerkungen (kein Autor angegeben): lasse die Ersteller leer und setze trotzdem genre: Note. Wenn das extra-Feld bereits andere Zeilen trägt (z.B. Verified-URL:), füge genre: Note in einer eigenen neuen Zeile hinzu – überschreibe sie nicht.
  6. Suffixe ("Jr.", "III", "Sr."): Zotero hat kein Suffix-Feld – kodiere das Suffix im Vornamen-Feld, angehängt an den Vornamen mit einem Komma und keinem Leerzeichen (lastName bleibt nur der Nachname; hänge das Suffix niemals an den Nachnamen an oder füge einen zweiten Autor hinzu). Ein führendes ! im Suffix steuert, ob ein Komma davor gerendert wird (citeproc-js-Auszeichnung, laut Autor):
    • "John Smith Jr." (kein Komma) → firstName: "John,Jr.", lastName: "Smith"
    • "John Smith, Jr." (mit Komma) → firstName: "John,!Jr.", lastName: "Smith" Der Vorname inkl. aller Mittelnamen/-initialen kommt vor das Komma (z.B. John B.,Jr.). Gleicher Mechanismus für Zahlwörter/andere Suffixe – John,III vs John,!III, John,Sr. usw. Verwende die Komma-Form, die der Autor/die Quelle verwendet.
  7. Journalkürzel (Bluebook, gemischte Groß-/Kleinschreibung): fülle immer das Zotero-Feld journalAbbreviation („Journalkürzel" in der Benutzeroberfläche) mit der Bluebook-Abkürzung der Zeitschrift (Tabelle T13) in normaler gemischter Groß-/Kleinschreibung – Colum. L. Rev., Harv. L. Rev., Nw. U. L. Rev., J. Sup. Ct. Hist., Sup. Ct. Rev. – NICHT in Großbuchstaben. Der Zitierstil wendet die Kapitälchen selbst an, also speichere Colum. L. Rev. und niemals COLUM. L. REV. Der vollständige Name bleibt in publicationTitle; das Kürzel kommt in journalAbbreviation. Heins Zitatanzeige rendert es in Groß-/Kapitälchen („62 COLUM. L. REV. 633") – verwende es für die Schreibweise, konvertiere aber in gemischte Groß-/Kleinschreibung; bei einer unbekannten Zeitschrift überprüfe die T13-Form, anstatt zu raten. Für einen Online-Begleiter/ Supplement hänge den Supplementsnamen abgekürzt nach Bluebook an – Forum → F. (z.B. Harv. L. Rev. F.), während Colloquy keine Kurzform hat (Nw. U. L. Rev. Colloquy). Bekannte namensspezifische Ausnahmen (nicht „korrigieren"): California Law Review → Calif. L. Rev. (nicht Cal., obwohl Kalifornien in Reportern und anderswo Cal. ist). Die Calif.- Besonderheit ist spezifisch für diese Zeitschrift – im Gegensatz dazu Southern California Law Review → S. Cal. L. Rev., wo Kalifornien das übliche Cal. annimmt.

2. Kandidaten finden

Grenze den Umfang mit dem Benutzer ein, wenn die Anfrage offen ist (welche Richter/Wissenschaftler/ Epoche; nur Bücher oder auch Artikel; Handelsbücher vs. Fallbücher/Abhandlungen – kennzeichne Ermessensentscheidungen im Bericht, anstatt stillschweigend zu entscheiden). Führe dies nach §0 aus, niemals davor – das Inventar sagt dir, was der Benutzer bereits hat, was ändert, wonach es sich zu suchen lohnt.

Suche parallel: WebSearch; Open Library (search.json?title=&author= ist besser als nacktes q=); Wikipedia-Infoboxen (/w/index.php?title=<Seite>&action=raw, grep die Infobox) für Verlag/Datum/ISBN von bekannten Büchern; Verlagsseiten. Für rechtswissenschaftliche Literatur HeinOnline (§4). Die Google Books API hat ein gemeinsames anonymes Kontingent, das oft erschöpft ist – behandle sie als Bonus, nicht als Rückgrat.

2a. Kandidaten gegen die Bibliothek prüfen

Mit dem Inventar in der Hand dedupliziere die Kandidatenliste bevor die teure Verifizieren → Herunterladen → Hinzufügen-Pipeline (§3+) beginnt. Die Verifizierung von Metadaten und das Herunterladen von PDFs (Hein curl-Ketten, attach_pdf.py) ist der kostspielige Teil eines Durchlaufs; dies für eine bereits in der Bibliothek vorhandene Quelle zu tun, ist reine Verschwendung.

  1. Gleiche jeden Kandidaten gegen das Inventar ab, zuerst nach Autor + Jahr, dann nach Titel – Titel variieren (Untertitel, "Part I", sortierungsinvertierte Artikel, HTML-Entitäten), aber Kollisionen von Autor-plus-Jahr sind ein zuverlässiger Auslöser für eine genauere Betrachtung.
  2. Entferne eindeutige Übereinstimmungen (gleiches Werk bereits vorhanden) – verifiziere oder lade sie nicht herunter.
  3. Kennzeichne, entferne nicht stillschweigend, mehrdeutige Nah-Übereinstimmungen (gleicher Autor, ähnlicher, aber nicht identischer Titel; eine andere Ausgabe/Auflage; Artikel vs. sein Online-Begleiter). Manchmal kannst du die genaue Ausgabe erst während der Verifizierung genau bestimmen, also nimm einen echten Vielleicht-Kandidaten mit und vermerke ihn im Bericht, anstatt ihn wegzuraten.

Nur die Überlebenden durchlaufen §3. Die Absicherung vor dem Hinzufügen in §1 fängt dann Duplikate innerhalb des Durchlaufs und Kollisionen mit exakten Ausgaben.

Wenn du doch ein Duplikat erstellst, führe eine Zusammenführung durch, bevor du löschst. Der vorhandene Eintrag könnte das PDF, die Anmerkungen, die Tags und die Sammlungsmitgliedschaften des Benutzers enthalten; dein neuer könnte bessere Metadaten enthalten. PATCHE die guten Felder auf den vorhandenen Eintrag, dann lösche DEINEN. Lösche niemals den älteren Datensatz. (Bei der Bereinigung vom 2026-08-01 wurde damit ein echter Fehler behoben: Der Kahan-Eintrag des Benutzers hatte die Zeichenfolge "10.2307" in seinem issue-Feld und keine DOI.)

Arbeitsablaufregel (Autor, 2026-07-16): Jede Law-Review-Quelle über HeinOnline auflösen. Hein ist der saubere, autonome Pfad (§4a: IP-authentifiziert, keine Bot-Mauer, keine Schranke). Eine Quelle, die Hein nicht führt und die kein offenes Repositorium bereitstellt, wird als solche gemeldet (§5), anstatt ohne verifizierten Nachweis hinzugefügt zu werden.

3. Verifizieren → Hinzufügen → Deterministische Prüfung (nicht verhandelbar)

Vor dem Hinzufügen: Jedes Feld, das du schreibst, muss aus einer abgerufenen Quelle stammen – einem Open Library-Ausgabedatensatz (/isbn/<isbn>.json), einer Verlagsseite, einer Wikipedia-Infobox, einem Buchhändlereintrag. Schreibe niemals eine plausible ISBN/Datum/Verlag aus dem Gedächtnis. Hüte dich vor korrupten OL-Ausgabedatensätzen (ein falsches Buch hinter einer ISBN kommt vor); überprüfe jede Überraschung gegen eine zweite Quelle.

Nach dem Hinzufügen führe den mitgelieferten Prüfer auf genau dem aus, was in Zotero gelandet ist:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/build-library/check_source.py --collection <SCHLÜSSEL>   # ganze Sammlung
python3 ${CLAUDE_PLUGIN_ROOT}/skills/build-library/check_source.py --keys K1,K2,K3      # nur neue Einträge

Er löst die ISBN jedes Eintrags über fünf unabhängige Kataloge (Open Library Ausgabe + Suchindex, Google Books, Harvard Library, Library of Congress) oder seine DOI über Crossref auf und führt einen normalisierten Zeichenkettenvergleich von Titel/Autoren/Jahr durch. Urteile: PASS, FAIL (aufgelöst, aber stimmt nicht überein), UNRESOLVED (Identifikator in keinem geprüften Katalog gefunden – ein Hinweis zur erneuten Verifizierung, kein Beweis für Erfindung: Kataloge sind unvollständig und manchmal offline), BAD_ISBN (Prüfsumme), NO_IDENTIFIER. --stdin akzeptiert ein JSON-Array von Zotero-förmigen Einträgen, um Kandidaten vor dem Hinzufügen vorzuprüfen.

Jeder von dir hinzugefügte Eintrag muss mit PASS enden. Spielbuch für Nicht-PASS:

  • FAIL bei nur einer Quelle → meist Katalogkorruption; der Prüfer versucht bereits die anderen Quellen, daher bedeutet ein anhaltendes FAIL normalerweise, dass deine Daten falsch sind – verifiziere erneut anhand einer geöffneten autoritativen Seite und PATCHE den Eintrag (sende If-Unmodified-Since-Version: <Eintragsversion>). Wenn die geöffnete Seite deine Daten bestätigt, zeichne sie als Verified-URL: auf und sage dies im Bericht, anstatt korrekte Metadaten zu reparieren", um sie an einen Katalog anzupassen.
  • UNRESOLVED/zu-neu-für-Kataloge (Bücher < ~1 Jahr alt) → füge eine abrufbare autoritative Seite als Verified-URL: im extra-Feld des Eintrags hinzu und führe den Prüfer erneut aus (er erkennt, dass das manuell gesetzte Verified-URL:-Feld den Nachweis über den ausgefallenen Katalogabgleich stellt – das Urteil wird auf PASS gesetzt).
  • BAD_ISBN → korrigiere die ISBN. NO_IDENTIFIER → finde eine ISBN/DOI.

PDFs anhängen (optional): python3 ${CLAUDE_PLUGIN_ROOT}/skills/build-library/attach_pdf.py --keys <Schlüssel> <Hein-Abfrage>. Über Heimdatenblatt → PDF-Link → Herunterladen → Basis64 kodieren → an Zotero anhängen (siehe extra.PDF_URL für den zotero MCP). Lehrbücher und Fallbücher werden (bis auf Weiteres) nur als Metadaten hinzugefügt; die PDF-Verknüpfung istexperimentell.

4. Quellenspezifische Arbeitsabläufe

Die folgenden Arbeitsabläufe sind in dieser Reihenfolge auszuprobieren. Beginne mit HeinOnline für rechtswissenschaftliche Artikel und Büchernachweise, gehe dann zu Open Library usw.

4a. HeinOnline (IP-authentifiziert)

Der primäre Weg für Law-Review-Artikel und juristische Bücher. Hein benötigt IP-AuthentifizierungÜber einen institutionellen Proxy; leite den Proxy vor jedem Abruf ein:

BASH_ENV=~/.claude_proxy bash -c 'curl -s "https://heinonline.org/HOL/License?redirect=1"'  # initiiert Sitzung (leite auf Proxy)
BASH_ENV=~/.claude_proxy bash -c 'curl -s "..."'

Such-URLs:

  • Search (Artikelsuche): https://heinonline.org/HOL/Search?searchtype=advanced?q=<Suchbegriffe> II
  • Titel der Rechtszeitschrift / Goldner Zitattreffer → https://heinonline.org/HOL/P?h=hein.journals/<Kürzel><Jahrgang>&i=<Startseite> (die echte Linkstruktur; jede Abfrage benötigt den i-Parameter). Beachte, dass die 'P'-URL das Inhaltsverzeichnis ist; hänge #page=<Seite> an, um zur richtigen Stelle zu scrollen. Für den Zugriff auf den/die PDF-Anhang (Anhang II/Heft), suche nach dem Link "PDF mit Lesezeichen" / dem Download-Symbol auf der Inhaltsseite oder hänge ein #page=<Seite> an die URL an, um die aktuelle Seite anzuzeigen.
  • Publikationssuche: https://heinonline.org/HOL/Index?collection=<Sammlungskürzel> # z.B. journals, presidents, usccss oder waisen.

Metadaten aus Heins Zitatanzeige: Wenn Hein einen Zitattreffer zu einem von dir gesuchten Artikel findet, zeigt die Anzeige die Zitierung als fettgedruckten Text. Sie enthält den Namen der Rechtszeitschrift, Band, Jahr und die Startseite im Format 62 COLUM. L. REV. 633. Die Goldene Zitierweise ist eine standardisierte Kurzform vieler Rechtszeitschriftenartikel; z.B. 62 COLUM. L. REV. 633 bedeutet: Band 62 der Columbia Law Review, Seite 633. Die bevorzugte Methode, Metadaten in Zotero zu erhalten: Verwende den Zitattreffer, um die Zeitschrift, Band, Jahr, Startseite zu identifizieren; suche dann die Endseite auf der ersten Seite des Artikels in Hein. Wenn du Probleme hast, den Artikel zu finden, suche nach dem Titel, Autor, Titel der Rechtszeitschrift, Band und Startseite.

PDFs: Hein-Zugang erfordert curl-Ketten über den Proxy, um die Sitzung aufrechtzuerhalten. Die PDF-URL ist typischerweise innerhalb eines Aufrufs der Inhaltsseite eingebettet; suche nach einem href mit .pdf. Anhänge nach Bedarf mit attach_pdfpy.

4b. Open Library

Suche nach Büchern über die Such-API:

curl -s "https://openlibrary.org/search.json?title=<Titel>&author=<Autor>&limit=10"

Hole Ausgabedaten für die ISBN-Verifizierung:

curl -s "https://openlibrary.org/isbn/<ISBN>.json"

Diese API hat kein festes Kontingent und ist für die Erstverifizierung zuverlässig. Liefere falls nötig auch Produktseiten von Verlagen und anderen Buchhändlern.

5. Bericht an den Benutzer

Nachdem der Durchlauf abgeschlossen ist, gib einen kurzen Bericht darüber, was hinzugefügt wurde und was der deterministische Prüfer festgestellt hat:

  • Wie viele Einträge wurden zur Sammlung hinzugefügt?
  • Wie viele haben den Check bestanden? Wie viele sind fehlgeschlagen?
  • Welche Quellen (z.B. Web, Hein, OL, andere) wurden für die Verifizierung verwendet?
  • Empfehlungen: Welche Quellen sind noch erforderlich? Welche sind mögliche Erweiterungen?
  • Liste der Einträge, die nicht verifiziert werden konnten: "Source not found in any catalog (Hein/Google/Open Library). Could not verify — skipping."

WARNUNG: Gib KEINE falsch positiven Ergebnisse über "Source gefunden" oder "Hein-Abfrage erfolgreich" aus. Sei ehrlich, wenn eine Quelle nicht gefunden oder überprüft werden kann.

6. Fehlerbehandlung und Protokollierung

  • API-Ratenbegrenzung: Wenn die Zotero-API einen 429-Fehler zurückgibt, warte 60 Sekunden und versuche es erneut; wenn erneut ein 429 auftritt, warte 120 Sekunden und versuche es ein letztes Mal, bevor du den Fehler an den Benutzer weitergibst.
    • Auswahl / Erstellung: Jede POST-Anfrage erstellt ein Zotero-Element mit den zuvor gesammelten Metadaten. Die minimale Einheit eines POST ist ein JSON-Objekt, das ein Zotero-Elementrepräsentiert.
  • Netzwerkfehler: Nicht-429-Fehler werden als solche gemeldet, mit genügend Kontext, damit der Benutzer die Ursache diagnostizieren kann.
  • Protokollierung: Alle API-Aufrufe, Kandidatenprüfungen und Check-Ergebnisse werden protokolliert. Benachrichtige den Benutzer über unerwartete Fehler.

Keine Daten verlieren gehen. Der deterministische Prüfer erfasst jede Diskrepanz. Der gesamte Arbeitsablauf legt Wert auf Überprüfung und Vermeidung von erfundenen Quellen. Wenn Zweifel bestehen, frage den Benutzer, anstatt zu raten.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

danepps/legal-research-skills

Gather the full document set for a SCOTUS case being prepped for a podcast episode, class, or article — cert-stage filings, merits briefs, lower-court opinion, questions presented, and oral-argument transcript — and load them onto the user's reMarkable in a per-case folder. Manual trigger — use when the user says "prep <case>", "grab the briefs for <case>", "load up <case>", or similar.

danepps/legal-research-skills

Verify every citation and quotation in an article draft against the real sources — cases via CourtListener + official reporters, scholarship via the user's Zotero library then the open web — and return a graded, footnote-by-footnote report with a "needs your attention" section first, plus a citation-form section (short cites per Bluebook R. 10.9/4.2 and italics/small caps per R. 2.1(a)) decided from the draft alone. Trigger when the user wants a draft cite-checked ("cite-check this", "check the citations/quotes in this draft", "run cite-check on <file>"). Input: a .docx with real Word footnotes (markdown/plain-text fallback). Not a full Bluebook linter — signal order, citation order and cite composition stay out.

danepps/legal-research-skills

Quick, verified citation-finding for a specific proposition — a footnote-filler, not a research memo. Returns a few Supreme Court cites and/or a few scholarly cites (top scholars in flagship journals preferred; student notes only as a last resort), each verified with a pincite and a parenthetical or quote. Trigger when the user asks "find me a cite for X", "what should I cite for this footnote", "I need authority for the proposition that…", or pastes a sentence with an empty footnote.

danepps/legal-research-skills

Deep legal research that fans out multiple agents across free legal sources, verifies every authority, and returns a polished, well-cited memo. Use for case-law research, legal-scholarship / literature reviews, or both. Modes — caselaw | scholarship | both. Trigger when the user wants a thorough doctrinal memo, a survey of the academic debate, an answer grounded in cases/statutes, or a research deep-dive on a legal question.

Verwandte Skills