→ next · ← back · F present

Demos · Archive check · Step 1 of 9

Check a draft against its sources

~/kb-demo — claudeRECORDED 21 OCT 2026
❯ ! ls
AGENTS.md CLAUDE.md data manuscript scripts sources
❯ ! ls sources/og sources/md sources/unprocessed
sources/md: sources/og: sources/unprocessed:
❯ ! ls manuscript
manuscript.md references.bib
  1. I set up this project folder beforehand with /oss:research-repo. The agent reads CLAUDE.md at the start of every session. This file contains the project’s rules.
  2. The library is still empty. Originals will go in og/, and the searchable text copies in md/. Each source also gets an entry in the bibliography.
  3. My draft is already in manuscript/. It is about Koreans in Japan in 1946 and cites four works.

Return and Re-entry: Cholera and the Korea–Japan Border, 1946

Introduction

At the end of the Pacific War some two million Koreans lived in Japan. This paper follows what happened to them in 1946, the year in which repatriation, cholera, and a new border control regime met at the Korea Strait.

Repatriation

Repatriation from Japan was largely completed in 1946. Of the more than half a million Koreans who registered in March of that year as wishing to go home, most were shipped to Korea by the end of the year [@morris-suzuki2011]. The quarantine station at Pusan has been described as the most effective in occupied Asia [@lee2019].

Cholera

Cholera reached Pusan on 1 May 1946, aboard a repatriation ship from Guangdong carrying some 3,100 Korean returnees [@kim2021]. Conditions in Korea were hard for those who came home. Kim writes that “about 80 percent of returnees went back to Japan because of the hardship of life” [@kim2021, my translation].

The border closes

On 12 June 1946, SCAP suspended the repatriation of Koreans because of the cholera epidemic [@scapin1015]. From then on, the movement of people across the Korea Strait largely stopped.

  1. This sentence about repatriation cites Morris-Suzuki (2011), an article in English.
  2. This one cites Lee (2019) for a claim about the quarantine station at Pusan.
  3. The date and the ship come from Kim (2021), an article in Korean.
  4. The quotation is my translation of a sentence in Kim.
  5. This claim cites an order from SCAP, the Supreme Commander for the Allied Powers, issued in June 1946. The order is stored as a scanned page.The agent will check each of these five claims.
~/kb-demo — claudeRECORDED 21 OCT 2026
❯ ! ls ~/kb-demo-inbox
EMS143795.pdf
S1557466011010916a.pdf
9886118.pdf
❯ ! cp ~/kb-demo-inbox/* sources/unprocessed/
  1. Kim (2021) is stored under its original manuscript number.
  2. Cambridge Core named Morris-Suzuki (2011) after the article’s DOI (digital object identifier).
  3. SCAPIN 1015 comes from the National Diet Library in Tokyo. The file is a digitized photograph of a typed page.
~/kb-demo — claudeRECORDED 21 OCT 2026
❯ /process-source
… 1 min 21 s …
I processed all three PDFs. Two converted to Markdown; the third is a scanned image and has no Markdown yet. I followed the project’s .claude/commands/process-source.md.
Original fileNew nameMarkdown
EMS143795.pdfkim-2021-cholera-korean-stowawaysConverted (Korean, 197 lines of Hangul, no broken characters)
S1557466011010916a.pdfmorris-suzuki-2011-guarding-borders-japanConverted
9886118.pdfscap-1946-suppression-illegal-entryNeeds OCR (one-page scan)
Needs your review:

1. The SCAP memo has no Markdown. … The page has a large handwritten X across it and a pencil note reading roughly “Resc by Scapin 1391 – 10 Dec 46”. … The project README says to send image-only files through vlm-ocr. For one typed page, I could also transcribe it by hand into md/. Which do you prefer?

2. Morris-Suzuki: quotation marks are missing. … Any direct quote taken from this file needs checking against the PDF.

3. Kim: some PDF noise. The Europe PMC watermark shows up as fake headings. …

  1. One command starts intake. The agent follows the steps written down in the project’s process-source file.
  2. Each new name is built from the author and the year, plus a few words of the title. The bibliography key comes from the same name.
  3. The converter, OpenDataLoader PDF, first counts the text on each page. The scan has almost none, so it is set aside as needing OCR.
  4. The agent then stops and asks how to handle the scan. It also lists what it is unsure of. I take account of these notes before making any decisions.
A typed one-page memorandum from General Headquarters, Supreme Commander for the Allied Powers, dated 12 June 1946, subject Suppression of Illegal Entry into Japan. A large hand-drawn X crosses the page, and a faint pencil note sits at lower left.
NDL Digital Collections, pid 9886118 · Public Domain
~/kb-demo — claudeRECORDED 21 OCT 2026
❯ ! scripts/ocr-scan.sh sources/og/scap-1946-suppression-illegal-entry.pdf # GLM-OCR, 13 s
MEMORANDUM FOR: IMPERIAL JAPANESE GOVERNMENT.

1. Cholera has broken out in Korea and is rapidly reaching epidemic proportions. In view of the grave danger of the introduction of this disease into Japan by carriers transported from Korea to Japan on unauthorized shipping, positive steps must be taken to detect and apprehend ships illegally entering Japanese ports.

…
J. W. Mann for JOHN B. COOLEY, Colonel, AGC, Adjutant General.
❯ Check the OCR text in sources/md/scap-1946-suppression-illegal-entry.md against the scan in sources/og/scap-1946-suppression-illegal-entry.pdf. Correct any OCR errors and add anything the OCR missed, including handwriting. List each correction at the top of the file.
… 1 min 31 s …
I compared the OCR file with the scan region by region at full resolution and corrected sources/md/scap-1946-suppression-illegal-entry.md. The numbered list of nine corrections is at the top of the file.

Body text: paragraphs 1–3, including sub-items a–c, match the scan word for word. The OCR’s errors are all in the material around the body.

Added typed text the OCR skipped:

  – the letterhead (General Headquarters, Supreme Commander for the Allied Powers)
  – the file reference: AG 014.33 (12 Jun 46)GC (SCAPIN 1015)
  – “APO 500 / 12 June 1946”

One misread: “Colonel, AGC” is “Colonel, AGD” (Adjutant General’s Department).

Handwriting:
  – …
  – Added the faint pencil note at the foot of the page: “Resc by Scapin 1391 - 10 Dec 46”.
  – Added the large X drawn across the body text.
  – …

Uncertain readings: I marked these with [?] in the file rather than guessing silently. …

  1. GLM-OCR is a small vision model that runs on this laptop through Ollama. It took 13 seconds to OCR this scan and produce a text document. It is all local.
  2. A spot check suggests that the OCR was clean and accurate.
  3. However, when I use an agent to compare the OCR text with the scan, it finds some errors. Notably, this requires the image to leave your local environment.
  4. The OCR had skipped the header with the date and the SCAPIN number. The agent adds it and corrects “AGC” to “AGD”.
  5. It also transcribes the handwriting, including the pencil note that rescinds the order in December 1946, and marks uncertain readings with [?].One page takes a minute to check this way. A whole archive needs a stronger OCR model.
~/kb-demo — claudeRECORDED 21 OCT 2026
❯ ! ls sources/md
kim-2021-cholera-korean-stowaways.md morris-suzuki-2011-guarding-borders-japan.md scap-1946-suppression-illegal-entry.md
❯ ! grep -n "80%" sources/md/kim*.md
565: 1946년 봄부터 밀항선을 타고 일본으로 향하는 조선인들도 증가하기 시작했다. 이 시기 일본으로 들어간 조선인 밀항자들은 모두 전후 일본에서 조선으로 돌아온 귀환자들이었는데, 그들 중 약 80%는 생활고로 인해 다시 일본행을 택한 것이었다.
  1. There is now a text copy of each source. The copy of the scan is the GLM-OCR text, corrected by the agent.
  2. A search of the Korean copy finds line 565. From spring 1946, it says, more Koreans crossed to Japan on smuggling boats, and the stowaways of this period had all come home from Japan earlier.
  3. 그들 중 약 80% means “about 80 percent of them”, and “them” is the stowaways. Keep this sentence in mind, because the check comes back to it.Translation mine.
~/kb-demo — claudeRECORDED 21 OCT 2026
❯ /oss:fact-check manuscript/manuscript.md
… 3 min 26 s …
Citation Audit Report

Tools: Crossref API, doi.org, OpenAlex, the NDL Digital Collections API and one web search.

KeyDOI / IDStatusNote
kim202110.35158/cisspc.2021.10.25.1VerifiedResolves to Kim, “Borders, Infiltration, and Elimination…”, vol. 25, pp. 1–38
morris-suzuki201110.1017/S1557466011010916VerifiedResolves to the correct article, APJ 9(8)
scapin1015NDL pid 9886118VerifiedNDL record: “SCAPIN-1015: SUPPRESSION OF ILLEGAL ENTRY INTO JAPAN 1946/06/12 … Rescinded by SCAPIN 1391”
lee201910.1353/ks.2019.0099LIKELY FABRICATEDThe DOI returns 404 at both Crossref and doi.org. An exact-title search on OpenAlex finds 0 works. … Korean Studies vol. 43 (2019) has no slot for pp. 77–102: pp. 68–95 belong to Rhee and pp. 96–119 to Kal.
  1. Before it reads any claim, the agent checks every reference against public records. Crossref and OpenAlex contain publication records, and the National Diet Library contains the record for the scan we used.
  2. Lee (2019) does not exist. The DOI leads nowhere. The agent rates it a likely fabricated or hallucinated source, so check it yourself before you act on that.I invented this reference for the demo.
  3. The other three references are real, and each record matches. The library’s record for SCAPIN 1015 also says it was rescinded, which agrees with the pencil note.
~/kb-demo — claudeRECORDED 21 OCT 2026
Fact-Check Report

Knowledge base: 3 of 4 cited works matched. … scapin1015 → scap-1946-suppression-illegal-entry.md. I corrected this file earlier in this session, but only the material around the body text, so the verdict below doesn’t depend on my edits.

ClaimVerdictSource passage
Of the >500,000 who registered in March 1946, “most were shipped to Korea by the end of the year” (morris-suzuki2011)CONTRADICTEDThe registration figure is right … The rest is not: “Ultimately, less than 100,000 Koreans were repatriated between April 1946 and June 1950 … Around 600,000 Koreans remained in Japan.”
“about 80 percent of returnees went back to Japan because of the hardship of life” (kim2021)CONTRADICTED
the translation changes who the 80% refers to
“… 그들 중 약 80%는 생활고로 인해 다시 일본행을 택한 것이었다.” The stowaways of this period were all returnees, and of them about 80% chose Japan again because of hardship.
“On 12 June 1946, SCAP suspended the repatriation of Koreans because of the cholera epidemic” (scapin1015)UNSUPPORTED
date and cholera motive correct; the action is wrong
The directive covers illegal entry into Japan: “positive steps must be taken to detect and apprehend ships illegally entering Japanese ports” … It says nothing about repatriation.
Pusan’s quarantine station was “the most effective in occupied Asia” (lee2019)NOT IN KBLikely fabricated. Kim, which is in the knowledge base, says the opposite: quarantine at Japan’s repatriation ports was more thorough than at Pusan.
Cholera reached Pusan 1 May 1946 on a ship from Guangdong carrying ~3,100 Korean returnees (kim2021)SUPPORTED“중국 광동에서 조선인 귀환자 3,100 여 명을 태우고 5월 1일 부산으로 들어온 귀환선 내에 콜레라 환자가 발생한 것이다.”
“movement … largely stopped” after June 1946 (uncited)CONTRADICTED BY THE KBKim: 7,378 Koreans were arrested in July alone, and about 10,000 a month were estimated to be entering Japan.

Read together, the knowledge base supports the opposite of the manuscript’s thesis: repatriation stalled, and cholera came with increased crossings back to Japan, not an end to them.

  1. The draft has Morris-Suzuki’s registration count right and the outcome wrong. Fewer than 100,000 went home by June 1950.
  2. The Kim quotation changes who the 80 percent are. In Kim, the figure describes the stowaways.
  3. SCAPIN 1015 is about seizing ships and says nothing about repatriation. The agent notes that its OCR corrections were all outside the body text, so they do not affect this verdict.
  4. Lee (2019) cannot be checked. The agent adds that Kim, which is in the library, says the quarantine at Pusan was less thorough than in Japan.
  5. The cholera ship is the claim I planted as correct, and the agent confirms it from the Korean passage.
  6. This one I did not plant. An uncited sentence says the crossings largely stopped, and the sources contradict it.
  7. Read together, the sources support the opposite of the draft’s argument. Repatriation stalled, and crossings back to Japan increased.

Planted, and found

Planted in the draftThe agent’s verdict
Morris-Suzuki reversedContradicted, with the passage
Kim’s “them” turned into “returnees”Contradicted, with the Korean
SCAPIN 1015 cited for something it does not sayUnsupported, from the corrected OCR text
A reference that does not existLikely fabricated (dead DOI, no such title)
The cholera ship (correct)Supported

The machine narrows where I look. I open the source and decide what to write.

  1. Each planted error was caught. With every verdict, the agent quotes the sentence in the source that it based the verdict on, so I can check it myself.
  2. The control held. The agent did not mark everything as wrong.
  3. The agent finds the passages. I read them, and I write the sentence.To build your own, start with Build a knowledge base.

About this run

This is a recording of a run done on 21 October 2026 with Claude Code and the Open Science Skills. The command /oss:research-repo was used to set up the project. The agent did the intake and the claim check, and it also checked the text from the optical character recognition (OCR) step. I ran the OCR script myself because the agent had stopped to ask me how I wanted the scan handled. All agent output is shown, except where it is cut, which is marked with an ellipsis. The run was headless, so the agent did not ask for approval before each command, as it normally does.

I used GLM-OCR running on my laptop through Ollama to perform the OCR, so that the scan would not be sent to any provider. Note, however, that the step in which the agent checks the OCR text did send the scan to the model provider. When I first ran this demo, the scan had no text copy, and the agent refused to run the claim check because it could only search half of the works cited.

The exact wording of the verdict for each claim also varies from run to run. In this run some claims are “contradicted”, whereas in other runs they may be merely “unsupported”. Of course, all of the text read by the agent is sent to the model provider.

Sources