Sloth-ninja cuts US case law out of JessicaOSS

This fork is choosing a UK legal-research identity and removing a major US case-law connection to get there.

searchintegration

Sloth-ninja has removed CourtListener, a service for searching US court opinions, along with the data structures and chat features built around it. The change includes a clean database migration, so the US research capability is being retired rather than simply hidden.

That makes the fork's direction unusually clear. Its work now concentrates on UK-facing sources such as Companies House, legislation.gov.uk and Land Registry, instead of carrying a US case-law feature it does not intend to use.

So what UK legal-tech teams assessing JessicaOSS should care because this fork is narrowing the product around domestic legal and company-information sources.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

4 commits from Sloth-ninja/JessicaOSS, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
e1fea922 Excise CourtListener (US case law) integration sloth-ninja 2026-07-07 ↗ GitHub
commit body
Clean removal per docs/MIGRATION_SPEC.md §2 - code, LLM tools, prompts,
UI, DB surface, env vars, and docs. The legal-research seam
(buildSystemPrompt(includeResearchTools) / researchTools) is kept empty
for the Companies House and legislation.gov.uk integrations (WS1/WS2).

Backend: delete courtlistener client, tool definitions, /case-law route;
strip 5 tool branches + ~1k lines of turn-state/citation helpers from
chatTools.ts; remove the OpenAI citation-reminder suffix; drop the
'courtlistener' key provider and the legal_research_us setting from
settings/profile routes.

Frontend: delete CaseLawPanel, the orphan courts script, and the
/account/features page (only content was the US toggle; per decision the
UK sources ship without a toggle); remove CL SSE handlers, event types,
case-citation annotations, case tabs, and rendering blocks. Old chats
containing persisted US events still render - unknown event types are
skipped at render time (MIGRATION_SPEC §6 decision 6).

Database: authorised migration 20260706_remove_courtlistener.sql (drops
both index tables, deletes stored CL tokens, tightens the provider
CHECK, drops legal_research_us) + matching schema.sql edits.

Also: posttool hook now runs prettier only when a project defines a
prettier config (repo has none; auto-formatting upstream files would
violate minimal-diff), and docs/BUILD_LOG.md introduced - every PR
appends a scope/verification entry (now in the definition of done).

Verification: zero courtlistener/legal_research_us references left in
source (except the intentional unknown-event skip-guard); tsc clean in
both projects; frontend lint 35 errors vs 41 baseline; backend boots and
serves /health; next build passes with public env vars; evals:smoke 3/3
against the live legislation.gov.uk API.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
c67faa97 Eval runner: load operator env files at startup sloth-ninja 2026-07-07 ↗ GitHub
commit body
npm run evals previously saw only shell-exported variables; the operator
keeps keys in repo-root .env.local. Loader reads .env.local / .env /
backend/.env (in that order, existing environment always wins), so keys
work from any of the documented locations. Values stay in the process
environment; nothing is printed or persisted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ff4b47be Activate Companies House golden case with real verified data sloth-ninja 2026-07-08 ↗ GitHub
commit body
ARIA GRACE LAW CIC (13927967) - the pilot firm - verified against the
live Companies House API; stable fields (number, name, incorporation
date, SIC, jurisdiction) baked as assertions. Tagged smoke so the Stop
hook exercises real CH connectivity; skips cleanly where the key is
unset (keyless CI until the secret is added).

Full suite now: 4 pass, 1 pending (judged case awaits workflow fixtures).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
a80e45ca Merge pull request #3 from Sloth-ninja/excise-courtlistener Ezana.H 2026-07-08 ↗ GitHub
Excise CourtListener (US case law) - clean removal

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-843.md from inside the repo you want the changes in.

⬇ Download capture-thread-843.md