case-law
Case law retrieval, reporting and citation standards for OKF matters. Use whenever the user asks for case law, precedent, authority, "what does the law say", summarising a judgment, finding a case, or citing a case in correspondence/pleadings/advice. Mandates the big red structural warning (judgments narrate positions A/B then decide; issue-by-issue judgments contain MULTIPLE decisions) and requires a confirmed paragraph number + context for every case law result before it may be relied on. Dense source documents (expert reports, FRAEW, adjudications) are mapped via tools/dense_doc_map.py first so pinpoints resolve to sections/pages. Never fabricate pinpoints — unverified citations are flagged. Self-learning: appends lessons to learnings.md.
Source: .opencode/skills/case-law/SKILL.md — site rebuilt 2026-09-05.
Case Law — Retrieval, Reporting & Citation Standards¶
When to run¶
- User asks for case law, precedent, authority, or "what does the law say".
- User asks to summarise a judgment, find a case, or compare positions.
- A case is cited in advice, correspondence, or pleadings — verify it here before it is used.
Core rule: the big red warning¶
Every single time a case law result is returned — summary, citation, or comparison — lead with this warning verbatim (or its equivalent bolded block):
⚠️ CASE LAW WARNING¶
A judgment is a narrative, not a headline. It states position A, then position B, then the DECISION — and in issue-by-issue judgments it makes a separate decision on every issue. A one-line summary of a case is almost always wrong, because it is usually the position of one side, not the holding. Only the actual decision (ratio per issue) is authority. Everything else — arguments, descriptions of the parties' positions, commentary on other cases — is narrative. This result is not usable until you have confirmed the paragraph number and context of each point (below).
Never return a case law result without this warning being visible.
Mandatory confirmation: paragraph + context¶
Before any case law point may be relied on (or included in a summary as authoritative):
- Paragraph number (pinpoint) — the exact para(s) of the judgment. E.g.
para 45,[45],paras 45–47. - Context — what the para actually says: is it the court stating the position A, position B, the decision, or counsel's argument?
- Who decided — which judge/court/panel; which decision stage (e.g. Inner House, single judge at first instance).
- Which issue — for issue-by-issue judgments, which issue the para belongs to.
- Ratio or obiter — is the point necessary to the decision (ratio) or said in passing (obiter)?
If any of these cannot be confirmed from the source, say so explicitly and mark the citation [UNVERIFIED: no pinpoint confirmed] — never invent a paragraph number. A case with an unconfirmed pinpoint may be mentioned as background, never cited as authority.
Verify the PROPOSITION, not just the pinpoint. A correct paragraph number can carry a wrong proposition. Read the holding paras (the decision section) verbatim and check: (1) is the passage a HOLDING, a recorded submission, or counsel's argument? — recorded submissions quoted verbatim in judgments are not holdings (Johnston v IC [13] = IC's submission, holding at [27]; YSL [2024] EWHC 391 (KB) 85 = strike-out ground, holding at [234]/[238]; Camden LBC v BW [44] = counsel's submission, and the point was rejected at [70]–[71]); (2) what did the case actually DECIDE — appellate outcome, which limbs succeeded and which failed (AB v BTP [90]–[94]: damages upheld but the accuracy limb failed on appeal); (3) does the attribution survive (O'Hara: "equipped himself with sufficient information" is Lord Hope's, not Lord Steyn's). Lesson log 2026-08-12.
Retrieval protocol¶
- Check the OKF corpora first — before going to the web, search the structured case-law corpora in
01_Text/(paragraph-per-line text with[n]pinpoint markers preserved): TCC_Contract_Corpus/01_Text/— EWHC Technology & Construction Court judgments (2003–2026; ~1,664). Query viagraphify query "<question>"from the corpus root (graph inTCC_Contract_Corpus/graphify-out/), or grep01_Text/directly for a case name.GDPR_Accuracy_Corpus/01_Text/— data-protection/defamation/accuracy judgments (graph inGDPR_Accuracy_Corpus/graphify-out/).Research_Notes/SSDT_Full_Catalog/01_Text/— SSDT disciplinary determinations (graph in itsgraphify-out/).-
Research_Notes/*.md— verified case notes (e.g. Scandalous_Averments, Dunlop_KC_Speech_Restriction) with pinpoints already confirmed. Corpus text is the same standard as a PDF text layer: pinpoints read from[n]markers, quoted verbatim. A result found in a corpus still needs the mandatory warning + pinpoint confirmation before it may be cited. -
Identify the proposition the user actually needs (the legal issue), not the case name.
- Retrieve the full judgment text (or authoritative headnote + full text). Secondary sources (blogs, digests) are for leads only — authority comes from the report itself.
- Read the judgment's structure first: does it decide ONE issue or MANY?
- Single-issue judgments: find the holding para(s) near the end (Lord X's "For these reasons I would ..." / "In my opinion ...").
- Issue-by-issue judgments: the court decides every issue in turn — list EVERY decision, not just the headline. Missing one is a material error.
- For each decision captured: record (a) issue, (b) the two positions as stated (position A, position B), (c) the decision, (d) pinpoint paras, (e) the reasoning paras that carry it.
- If the judgment narrates positions A/B before deciding, say which paras are narrative vs holding — this is the confusion the warning exists to prevent.
- Map dense sources first — if the authority or the document it discusses is dense (expert report, FRAEW, adjudication decision, long advice with a ToC), run
tools/dense_doc_map.py(okf-ocr skill) BEFORE capturing holdings:python <okf-ocr>/tools/dense_doc_map.py "<file.pdf>"→<base>_V1_OCR_index.md(verified section tree) +<base>_V1_OCR_map.md. Cite into the document asmap:§4.6 p44-46(document section + page), and confirm each pinpoint against the verbatim text before it may be cited as authority — same rule as paragraph numbers in judgments.
Reporting format (every case returned)¶
Return large verbatim chunks — never a bare pinpoint or a single paraphrased sentence. For each holding, quote the pinpoint paragraph plus the paragraph before and the paragraph after (the chunk [N-1] [N] [N+1], or the whole surrounding passage where the reasoning runs long). Context lives in the run-up, not in the one sentence you want:
CASE: [Name] v [Name] [Year] [Court]
ISSUES DECIDED: [1] ...; [2] ...; [3] ...
HOLDING(S) — per issue (pinpoint + chunk required):
1. [Issue] — decided [for whom / which proposition] — [Name J] at [para] — [ratio/obiter]
CHUNK: [[N-1]] ...verbatim... [[N]] ...verbatim... [[N+1]] ...verbatim...
2. ...
POSITIONS STATED IN JUDGMENT (NOT holdings): A = ...; B = ... (paras X–Y)
UNVERIFIED: [anything not pinpoint-confirmed]
- The chunk is quoted verbatim from the judgment (verbatim-ocr standards apply: no silent edits, no elision without
[...]). - If a holding's reasoning spans several paragraphs, quote the whole span — the before/after rule is the minimum, not the ceiling.
- If you cannot supply the chunk (source not to hand), that point is
[UNVERIFIED: context chunk unavailable]— lead with the warning, never fake a chunk.
Special cases¶
- Issue-by-issue with multiple decisions: the most dangerous type. Enumerate ALL decisions explicitly. The user's instruction: a case "normally narrates A position, B position and then decision... sometimes it's issue by issue with lots of decisions" — handle both.
- Overturned/reversed/approved on appeal: state the appellate history with pinpoint if known; mark the status of each holding.
- Conflicting cases: never paper over conflict; present both holdings with pinpoints and note which court is binding on the current forum.
- Numbered paragraphs missing (older reports, unreported): give the page + at a minimum the section heading, and mark
[UNVERIFIED: no para numbering].
Self-learning¶
learnings.md sits next to this SKILL.md — read before retrieving, append new dated lessons after (case structures that misled, pinpoint-finding patterns, sources that lack paras).
Example¶
User: "What does the law say about X?" — reply starts with the big red warning, then per-case reports each with pinned holdings, positions stated vs holdings distinguished, and any unverified elements flagged. No case may be cited in advice without the format above.