agentsclimarketplace

Bailii case download

Skill ciaransaunders/Skills-Public/bailii-case-download

Reusable Claude skills (SKILL.md) for Cowork/Claude Code, focused on legal AI: pure-Python BAILII downloader solving Anubis proof-of-work, UK employment-law verifier, legal writing, prompt generators

Install
npx -y skills add ciaransaunders/Skills-Public --skill bailii-case-download

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Search BAILII (www.bailii.org) for a UK or Irish case and download the full judgment as a clean PDF. Use whenever the user wants a case from BAILII, gives a neutral citation (e.g. "[2024] EAT 114", "[2021] UKSC 5") or a BAILII URL and asks to fetch/download/save it, asks for "the full case as a PDF", wants to verify a case PDF against the authoritative source, or asks to find a case on BAILII by name. Also trigger when the user mentions BAILII, case law downloads, or building a bundle of authorities and needs the underlying judgments.

SKILL.md

3.9 KB, as published. Nobody here has run it

BAILII case downloader

Fetches UK/Irish judgments from BAILII and saves them as clean, readable PDFs (BAILII chrome, nav, search forms, donation banners and footers removed).

BAILII now sits behind Anubis — a JavaScript proof-of-work bot wall, on top of its long-standing cloud-IP block. The bundled script solves the proof-of-work in pure Python (no browser needed) and handles BAILII's CGI quirks, so prefer it over web_fetch/curl, which will just hit the "Making sure you're not a bot!" page.

The script

scripts/bailii_fetch.py — self-contained, Python 3 stdlib only for fetching. PDF rendering uses the first available of: wkhtmltopdf → headless Chrome/Chromium → weasyprint. If none is present it saves the cleaned HTML and says so in the output (you can then convert it yourself).

Run it with python3 scripts/bailii_fetch.py <command> .... All commands print JSON to stdout.

Choosing a command (in order of preference)

1. cite — when you have a neutral citation. Most reliable; use this first.

python3 scripts/bailii_fetch.py cite "[2024] EAT 114" --out DIR

Resolves the citation via BAILII's citation finder and downloads the case. Works for the usual courts: UKSC, UKHL, UKPC, EWCA, EWHC, EAT/UKEAT, UKUT, etc. Exits with code 2 and a helpful message if the citation doesn't resolve.

2. url — when you already have the BAILII case URL.

python3 scripts/bailii_fetch.py url "https://www.bailii.org/uk/cases/UKSC/2021/5.html" --out DIR

3. search — when you only have the case name. Returns candidates; does NOT auto-download.

python3 scripts/bailii_fetch.py search "Uber Aslam" --limit 6

Prints a JSON list of {url, title} candidates (title-scoped search — fuzzy by design). Pick the right one yourself, confirm with the user if ambiguous, then download it with url. Don't assume the first result is correct; BAILII often returns the whole litigation chain (ET → EAT → CA → SC) and you want the specific instance the user means.

Options

  • --out DIR where to save (default: current dir). Create/choose a sensible folder, e.g. an authorities bundle directory.
  • --keep-html also keep the cleaned standalone HTML next to the PDF.
  • --no-pdf save cleaned HTML only, skip PDF rendering.
  • --limit N (search only) max candidates to return.

Output

cite and url print JSON with title, source_url, pdf (path), optionally html, and pdf_engine. The PDF carries a small "Retrieved from BAILII · <url>" provenance banner at the top so the source is always traceable — useful for an authorities bundle.

Notes / caveats

  • Anubis is occasionally flaky. The script already solves-and-retries and validates the final page (rejects bot-wall pages, checks it's a real /cases/...html judgment). If a fetch still fails, just run it again.
  • Always sanity-check the result. Confirm the returned title matches the case the user asked for before relying on it — especially after search.
  • This pulls public judgments from a free public legal database. It is not a substitute for a citator: BAILII does not show subsequent treatment / whether a case is still good law.
  • Filenames are derived from the case title and capped in length; the script handles the awkward characters.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.