# An investigative story file — timeline, documents and claims to verify

Recipe No. 41, Research and civic life. From The know.sh Cookbook: https://know.sh/cookbook/story-file

- For: a local reporter looking into how a city contract was awarded
- You bring: a tip you are not yet sure of, the public records you have obtained so far, council minutes, state business filings, and the AI assistant your newsroom allows you to use
- You get: a private story file: a timeline, a register of people and companies, a log of every document obtained, and a list of claims that stay open until a primary record confirms them
- Time: an evening for your assistant to build the file and for you to check it, then fifteen minutes at the end of each reporting day
- Keep it: private; never on a public link

A contract story starts with a tip and turns into paper. The Millbrook Ledger's city hall reporter hears that a $6.2 million sidewalk contract went, without bids, to a company nobody had heard of. Six weeks later there are forty records, three spreadsheets, a folder of council video timestamps and a notebook, and the question the editor asks — "what do we actually know, and how do we know it?" — takes an afternoon to answer.

This recipe keeps the investigation as a shelf of four documents: a **Timeline** of dated events, **People and companies**, **Documents obtained**, and **Claims to verify**. Your assistant — Claude, ChatGPT, or a local model if your newsroom prefers one — reads the public records you give it and files the dates, names and documents; you check each entry against the record in the editor. Every fact carries its source. Every claim you have heard but not proved is a *Question* finding, and it stays one until a primary record, not a summary, confirms it.

The file is private and never gets a public link. The story is written in your newsroom's system, and the people who talked to you in confidence are not in know.sh at all.

## What you will use

- **Shelf**: One shelf per investigation, *Sidewalk contract*, with the working question in its line.
- **Research document**: Four documents: Timeline, People and companies, Documents obtained, Claims to verify.
- **Finding**: Dated events and confirmed facts as *Evidence* with their sources; unproven claims as *Question*; denied or overdue requests as *Problem*.
- **Your AI assistant**: Builds the four documents from the public records you give it, searches the web for record leads, and reads the file for claims that rest on one source and dates that disagree.
- **The editor**: Where you check every date, name and figure against the record, drag the timeline into order and write the claims yourself.
- **The A–Z index**: The names of people and companies that recur across the file (*Keystone*, *Whitcomb*), with the findings where each appears.
- **Revisions**: Shows when each fact entered the file and whether you or an assistant wrote it, which matters when an editor asks.

## Method

### 1. Have your assistant open the file

Connect your assistant to know.sh once, following the support page. Then ask it to make a shelf for the investigation, with the question you are trying to answer as its line — "How did Keystone Civil Works get the 2026 sidewalk contract without a bid?" — and four documents:

- **Timeline**: one finding per dated event.
- **People and companies**: one finding per person or entity.
- **Documents obtained**: one finding per record in hand.
- **Claims to verify**: one finding per thing you have been told but not proved.

The Timeline's overview is yours: two sentences on the story as you currently understand it, rewritten as that changes.

### 2. Give it the public records to file

Attach the records you hold that are already public: agendas, minutes, the procurement notice, the state business filing, the county's campaign finance reports. Ask the assistant to log each one in *Documents obtained* — what it is, who released it, the request number, the dates you asked and received it, and where the file is kept on the newsroom drive — and to pull every dated event into the *Timeline* and every person and company into *People and companies*, each with the record as its source.

Tell it to title timeline findings date first — "2026-03-04 — Emergency declaration signed by city manager" — and to quote the record rather than paraphrase it. Forty records become a working file in an evening.

### 3. Check every entry against the record

Now open each document in **Edit** with the records beside you. Check every date, name, dollar figure and quotation against the record it cites; a misread date is exactly the error a correction is made of. Drag the timeline into date order, delete anything the record does not support, and file requests that are overdue or denied as *Problem* findings, with the statutory deadline and what you did next.

Put the names that matter in each finding's title or first lines, where the index reads them. When the same surname turns up as a company's registered agent and in a council member's campaign filing, the index lists both findings under it, and that is often the first sign of a connection worth checking.

### 4. Write the claims to verify yourself

*Claims to verify* is the discipline of the file, and you write it, because it comes from your reporting. Each claim is a *Question* finding: what you were told, how many independent sources have said it, and what record would prove or disprove it. Attribute it only as your newsroom's policy allows.

When a primary record confirms a claim, add the record to its sources and write "Confirmed" with the date and the record in the first line. Claims that fall apart stay in the file, marked as such; they explain why the story does not say something.

### 5. Ask your assistant for public-record leads

Ask your assistant to research on the web what public records exist about Keystone Civil Works LLC and its officers — state business filings, other government contracts, court cases and liens — and to file what it finds as a new document on the shelf, one finding per record with its source link. This needs an assistant with web search; Claude and ChatGPT have it, and most local set-ups do not.

Every one of those findings is a lead, not a fact. Go to the official record each one points to and pull it yourself. What checks out goes into the file with the official record as its source; what does not gets deleted. Never quote a model's summary of a filing as if it were the filing.

### 6. Check the file before the story runs

Once a week, ask your assistant which claims rest on a single source and which confirmed facts cite nothing but other findings. Before the story goes to your editor, read every sentence of the draft against the file yourself. Each fact should trace to a finding with a primary record in its sources. Anything that does not trace goes back to *Claims to verify* or comes out of the draft.

Revisions show when each finding was added and changed, and whether you or an assistant wrote it. Anything an assistant wrote is checked against the record before you rely on it.

## Prompts to try

Your assistant, connected to know.sh (Claude, ChatGPT or a local model):

> I am attaching council agendas and minutes, the procurement notice and the state business filing for Keystone Civil Works LLC. Using know.sh, on my shelf “Sidewalk contract”: log each record in “Documents obtained”; add each dated event to “Timeline”, titled date first; and add each person and company to “People and companies”. Give every finding the record as its source and quote the record rather than paraphrase it. Do not add anything to “Claims to verify”.

Your assistant, connected to know.sh (Claude, ChatGPT or a local model):

> Search the web for public records about Keystone Civil Works LLC and the people listed as its officers: state business registry entries, other government contracts in this state since 2020, court cases, liens and campaign contributions. Using know.sh, file them as a new document called “Record leads” on my shelf “Sidewalk contract”, one finding per record with the official source link. Mark anything you found only in a news report or directory site as unconfirmed.

Your assistant, connected to know.sh (Claude, ChatGPT or a local model):

> Using know.sh, compare every date in “Timeline” on my shelf “Sidewalk contract” with the dates in “Documents obtained” and “People and companies”. List any that disagree, quoting both findings. Do not change anything.

## Variations

- Covering a single meeting rather than an investigation? One document per meeting, a finding per agenda item with the minutes as its source, and a running *Questions for the clerk* finding.
- For a long-running beat, keep a shelf of *People and companies* that outlives each story, and link each new story file’s findings to it.
- When the story has run, add a *Decision* finding to the Timeline recording what was published, what was left out and why. The follow-up story starts from there.

## Where it falls short

- know.sh holds text, not records. There is no upload, so the PDFs, spreadsheets and video stay on your newsroom drive, and each finding says where.
- Web research needs an assistant with web search, and it sees only the open web. Court dockets behind PACER, paid business databases and records you must request are yours to pull.
- Smaller local models call tools less reliably and can misread a scanned record. Check what they file; Revisions shows every change.
- Nothing in know.sh is end-to-end encrypted or built for source protection. That is why confidential sources stay out of it entirely.
- The file has one owner. A reporting partner or editor cannot work in it, and this recipe never gives it a public link.

## A note on sources, verification and confidentiality

Verify every fact and quote with primary sources before publishing; AI summaries are leads, not sources. That applies to what your assistant finds and to what it writes into the file. A court record, a filing or a set of minutes is a source; a model's description of one is not.

Keep confidential sources out of know.sh and every other cloud tool unless your newsroom's policy says otherwise. Do not write their names, contact details, or anything that would identify them, and remember that any assistant you connect can read the whole library. A local model keeps the conversation on your machine, but the library itself is in know.sh's cloud, so the rule does not change. Check, too, whether your newsroom allows unpublished records to be given to an AI service at all. Record what a source told you as a claim to verify, attributed only as your policy allows, and keep the rest where your newsroom keeps it.

Before publication, the file is what you check the story against, not what your editor or the paper's lawyer relies on. They will want the records themselves.

Indexed under: Story files, Public records, Verification, Confidential sources, Timelines, City contracts.
