It is easy to preach about how important it is to verify your work personally. But practically, how best to go about it?
This post shares some examples of techniques and skills I have been tinkering with over the past few months. It is all still very much a work in progress, but I hope it helps you think about what kind of verification you need for your own work.
The examples come from a real matter from last week: an appeal in a private arbitration, about 75 pages of heads, some 250 footnotes, 20 authorities and a few hundred references to a record of close to 900 pages. The facts of the matter are anonymised. The cases are real.
The aim
One question: if these heads are filed as they stand, is anything in them wrong? Not “does the argument work”. That is my job. The question is narrower and more boring. Is every quoted word in the source? Does every pinpoint land on the passage? Does every record page say what the heads say it says? Does the case say what we cite it for?
Three layers answer that, each slower and more thorough than the last.
- Layer 1 The citation check. A spreadsheet. Every quotation and pinpoint, one row each, colour coded. Fast, mechanical, and it never finishes the job.
- Layer 2 The four-way audit. Four separate readers test the heads against the record, the Award, the opponent’s papers and the judgments, and a memo lists what must change and what I should reconsider.
- Layer 3 The visual quote check. Each quotation beside a picture of the page it came from, with the words highlighted. The one I trust most, because there is nothing left to take on faith.
Each layer below has three parts: the instruction I gave, a replay of Claude working, and a piece of the real output.
Layer 1: the citation check
This is a written routine Claude runs on request (described here). It takes every footnote in the heads, finds the cited source on file, and tries to match the quoted words and the pinpoint. It does not search the internet. If the judgment is not in the matter’s research folder, the row says so and stops.
The instruction, as I typed it (names removed):
The output is a spreadsheet. One row per citation. Green means the quoted words were found in the source exactly. Blue means there was no quotation to match, so the pinpoint was opened and read. Orange means the reader found something I need to look at. Yellow means the source is not on file. Red means the words in the heads are not the words in the source. Here are six real rows from the 4 October run and one from the week before.
| FN | Authority and pinpoint | Quoted text | Verification | Read by eye |
|---|---|---|---|---|
| 9 | Fiona Trust & Holding Corporation v Privalov [2007] UKHL 40para 5 | Businessmen in particular are assumed to have entered into agreements to achieve some rational commercial purpose | VERIFIED | Quotation verbatim (string match). |
| 29 | Phillips v Fieldstone Africa (Pty) Ltd 2004 (3) SA 465 (SCA)para 30 | Where one man stands to another in a position of confidence involving a duty to protect the interests of that other … | VERIFIED | Quotation verbatim; the string search was broken by the page footer “986 18” inside the passage; matched after removing it, and read by eye. |
| 8 | Telcordia Technologies Inc v Telkom SA Ltd 2007 (3) SA 266 (SCA)paras 50–51 | PINPOINT ONLY | READ – SUPPORTS: para 50 “They may, obviously, agree otherwise”. | |
| 7 | Canton Trading 17 (Pty) Ltd t/a Cube Architects v Hattingh NO 2022 (4) SA 420 (SCA)para 28 | PINPOINT ONLY | READ – FLAG: para 28 says which disputes go to arbitration is a matter of what was agreed and the interpretation of the written agreement. The fn 7 gloss “interpreted by considering text, context and purpose together” is not in para 28 or anywhere in Canton. That is Endumeni language. | |
| 233 | Dell v Seton South Africa (Pty) Ltd [2011] ZALAC 6paras 47, 51, 52 | PINPOINT ONLY | READ – FLAG: the heads say the LAC “has said of a managing director that his position required him to make the information apparent”. In para 47 those are the commissioner’s words; the LAC held only that the conclusion was “not farfetched”. | |
| 20 | Herbstein and Van Winsen, The Civil Practice of the High Courts of South Africap 13-40 | SOURCE UNAVAILABLE | Not on file anywhere in the matter. | |
| body | The parties’ agreement, clause 8.3.9cl 8.3.9 | The same drafters wrote “clauses 8.3.3 to 8.3.8” | QUOTE INACCURATE | The agreement reads “clauses 8.3.3 to 8.3.98”. Changed in V4 from “8.3.98” to “8.3.8”. The sentence argues that the drafting is loose; the quote must keep the error. Restore “8.3.98”. |
VERIFIEDPINPOINT ONLY, readFLAGSOURCE UNAVAILABLEQUOTE INACCURATE
Look at the last row. Somebody, and it may well have been me, tidied a typo in a quotation from the agreement. The sentence was making the point that the agreement was loosely drafted, and the typo was the evidence. A checker that compares words, not meaning, catches that. A human reader, who knows what the clause is supposed to say, glides straight over it.
The orange rows are the ones that need me. Canton does not say what footnote 7 says it says; the words come from a different case. Dell is subtler: the proposition is in the judgment, but it is the commissioner being quoted, not the Labour Appeal Court speaking. Both go in the heads under my name. Both would have been found by opposing counsel with an afternoon to spare.
What the spreadsheet does not do is tell you whether a paragraph fairly states what the record shows. For that, layer 2.
Layer 2: the four-way audit
The heads are treated as a hypothesis. Four readers, run in parallel and told nothing about any earlier check, test them against four things: the judgments on file, the record (in two halves, because it is long), the Award under appeal, and the other side’s papers. Each reader writes its findings to a file with one of five labels. The orchestrating session then re-reads every adverse finding against the source page before it goes in the memo.
The instruction, in substance:
The memo’s findings table. “Redline” means the correction was applied as a tracked change in a flagged copy of the heads, for me to accept or reject. “Comment” means it went in the margin, because it is a judgement call or it sits in a footnote. In my head these are “must fix” and “reconsider”. Nine of the thirty-four, with names and facts taken out:
| # | Where | Issue (source) | Correction | Action |
|---|---|---|---|---|
| D1 | ¶100 | CONTRADICTED Quote ‘known within the recruitment structures’ omits words. The affidavit: ‘known within the business and recruitment structures involved in the appointment’. | Insert ‘business and’. | Redline |
| D2 | ¶100 | CONTRADICTED ‘misunderstood’ is not his word. The affidavit: his word is ‘misunderstanding’. | Use his word. | Redline |
| D3 | ¶134 | CONTRADICTED Award para 60 is not ‘a single sentence’. ‘In passing’ qualifies only the onus sentence; the finding of misconduct is a separate, unqualified sentence. | ‘in one paragraph and without reasons, in a remark on grossness said to be made in passing,’ | Redline |
| D4 | ¶138 | CONTRADICTED Para 60 says ‘misconduct’, not ‘substantial misconduct’. | Delete ‘substantial’. | Redline |
| D6 | FN7 (¶8) | CONTRADICTED Canton para 28 does not say ‘text, context and purpose together’. It says which disputes go to arbitration ‘is a question of what has been agreed, and the interpretation of the parties’ written agreement’. | Restate FN7 to match para 28, or re-source. | Comment |
| D8 | FN94 (¶67) | CONTRADICTED ‘Part B above’ is the arbitration agreement; the duties are in Part D. | ‘Part D above’. | Comment |
| D9 | FN13 (¶14) | CONTRADICTED The pages cited are part of the founding affidavit. The relief is in the notice of motion (prayers 2–3). | ‘Notice of Motion, prayers 2–3’, with the right pages. | Comment |
| D10 | FN18 (¶19) | VERIFIED (refinement) Beadica paras 88–90 concern ‘perceptive restraint’; para 90 cuts against us (‘should not be blithely invoked as a protective shield’). Fairness not free-standing: para 80. | Re-pin to paras 80, 82, 88–89 and 91. | Comment |
| D11 | FN20 (¶22) | UNVERIFIABLE Herbstein p 13-40 still cited; not on file; you decided on 4 October to drop it. | Delete Herbstein. | Comment |
| D21 | ¶16 | VERIFIED (refinement) Gbenga: the Court refused leave (para 25); ‘upheld’ overstates. | ‘held the applicant bound … and refused leave’. | Comment |
Two things to notice. First, how small the errors are. Two words dropped from a quotation. A noun where the witness used a different noun. “Substantial” added to a finding that does not contain it. “A single sentence” for a paragraph that has several. None of these changes the argument. Every one of them is the kind of thing the other side’s junior finds at 11pm and hands up with a smile.
Second, D10 and the overstatements. Beadica para 90 was cited for us and reads better for them. In about fifteen places the heads call something “undisputed”, “common cause” or the other side’s “own version” where the record page has a hedge, or our own client’s evidence. That is not a citation error. It is the heads overstating their case, and it is the finding I would least like a panel to make for itself. The spreadsheet in layer 1 cannot see it, because every pinpoint lands on a real page.
The memo also lists what it could not check (two sources not on file, the other side’s appeal heads not yet delivered), and it says so in terms: “not located” is not proof of absence.
A confession. The spreadsheet and the report are fine. But Claude generates them at such a volume that I often do not read them. Or I get confused about which report is the latest and what changes are still needed. And if the report looks fine, I carry on and finalise the document, and then, at the moment I am about to press “send” on the email or “upload” on CaseLines, I freeze. What if there is a fabrication that Claude missed? What if the case I cite does not say that? Some 3am type of panic kicks in. I have pressed “send” and then frantically tried to disconnect from the wifi so that I could check the attachment one more time.
Layer 3: visual verification as comfort in the early morning hours
The night before court is the worst. What if the written argument I filed months ago contains a lurking fabrication, waiting to be exposed during argument? Goodbye case, client, reputation, career. More 3am animal panic. So how to manage this? I want to see, with my own eyes, the actual source of the quote, next to the argument. Not a spreadsheet with the quote and the source marked green for go. I need to see the actual thing, as it looks on the actual page.
That is what the visual quote check does, and it is the one I would keep if I could keep only one. It takes every passage in quotation marks in the heads, body and footnotes, finds the words on the cited page of the record or the judgment, and renders that page as a picture with the words highlighted. The heads on the left, the source on the right. There is nothing to trust. You look.
The instruction, in substance:
Two real cards from that page. The first is a quotation from the judgments, checked against two sources because the SCA was itself quoting the Appellate Division. The second is the ¶100 misquote.
Heads
‘Where one man stands to another in a position of confidence involving a duty to protect the interests of that other, he is not allowed to make a secret profit at the other’s expense or place himself in a position where his interests conflict with his duty.’
Source



Heads
… His answer that the relationship was ‘known within the recruitment structures’ …
MISQUOTE. The affidavit reads ‘known within the business and recruitment structures’. The heads drop ‘business and’ without an ellipsis. (Also flagged in the four-way audit.)
Source

The orange patch is the whole finding. Two words, “business and”, in the affidavit and not in the heads. On its own it is nothing: the sense survives. But the paragraph was criticising that witness for the vagueness of his answer, and it had shortened his answer to do it. That is exactly the kind of point I do not want made against me from the bench. It is on the fix list.
The other tool that answers the 3am question is the hyperlinked bundle. The filed heads carry a link on every footnote. Click it and you land on the stamped page of the record or the authorities bundle it cites, with the passage boxed. Click the back link on that page and you are back at the footnote you came from. Here is one footnote doing it: footnote 30 in the heads, which cites Phillips para 30, and page 51 of the bundle, where para 30 sits.
31.The common law supplies the first source of the duty. In Phillips the Supreme Court of Appeal adopted the statement of Innes CJ in Robinson:30
‘Where one man stands to another in a position of confidence involving a duty to protect the interests of that other, he is not allowed to make a secret profit at the other’s expense or place himself in a position where his interests conflict with his duty.’
32.Phillips summarised the modern content of the rule.31 The rule is strict and allows little room for exceptions. It reaches a ‘real sensible possibility’ of conflict as well as an actual conflict. The only defence open to the fiduciary is the free consent of the principal after full disclosure. Once a breach is proved, it does not matter that the principal suffered no loss or that the fiduciary acted honestly and reasonably. In Grancy a five-judge bench of the Supreme Court of Appeal reaffirmed those rules.32 Phillips also held that a senior employee, and not only a director or agent, owes those duties.33
30 Phillips v Fieldstone Africa (Pty) Ltd and Another 2004 (3) SA 465 (SCA) para 30, quoting Robinson v Randfontein Estates Gold Mining Co Ltd 1921 AD 168 at 177. Bundle p 51
31 Phillips para 31.
32 Grancy Property Ltd and Another v Gihwala and Others 2025 (2) SA 76 (SCA) paras 190–191.
33 Phillips para 33.
What this does not do
None of this decides anything. It finds. The findings go into a memo and a tracked-changes copy, and I accept or reject each one in Word, one at a time. On this matter the memo also carried an open question about how a concession is described in three places, and it left the answer to me, as it should.
It is only as good as the sources on file. If the judgment in the research folder is an abridged copy, the check verifies against an abridged copy. Two of the sources cited in these heads were not on file at all, and every layer said so rather than guessing.
And it costs time. The four-way audit reads every cited page of the record, the Award and the judgments, and then re-reads every adverse finding. The quote check rendered 400 pages. I run them overnight and read the output over coffee. That is still faster than what I did before, which was to read the heads once more and hope.
So what does verified look like? Not a word. A spreadsheet, a memo and a pile of highlighted pages, and anyone can read them. The routine is on the checking page.
The skills
I am not publishing the skills themselves. They are written for my folders, my matters and my habits, and they would not fit yours. But this page describes what each one does in enough detail for a model to build you something similar. Copy the text of this page into the model you use and ask it to build you skills that do the same for your work.
If you do take skills, plugins or GitHub repositories from elsewhere, the best thing to do when you copy one into your Claude is to ask it to check for viruses or malware first. Then ask it to read the skill and say whether it is useful to your practice. Then ask it to copy and amend the skill to make it right for you, in the way you use Claude for work. It will scan the code, compare it to your workflows and your existing skills, rewrite the skill to suit you, and prompt you to save the updated version. Done. Then try it on some work of your own and tweak it to your liking.
The matter is a live appeal in a private arbitration, so the parties and the facts are not identified. The case law and the findings are as they appear in the working files; record page numbers are left out. The heads text on the second card and the record crop are cut down to the quoted words. The replays are reconstructions from the files each run produced; the status-line wording and the pacing are mine.
