Method
What Fond does with a recipe, how it gets there, and what it refuses to say.
How Fond works
Every dish document goes through the same four stages, in order, and nothing skips ahead of the gate at the end.
1. Research
A polite, guarded fetcher pulls a handful of published recipes for a dish, plus any reference sources on its history. It identifies itself, respects robots.txt, and never touches a private network address, no matter what a redirect points at.
2. Analysis
Ingredient lines are parsed and normalized, ratios and scaling behavior are computed deterministically, and the fetched versions are clustered so the pipeline can see what every version agrees on and where they actually differ. None of this arithmetic is left to a model.
3. Generation
A language model writes the teaching document — the ten sections you see on a dish page — grounded in the extracted, clustered source material. Every fetched page's text is quoted back to the model inside a delimited envelope in a user turn, never folded into the system prompt, so a recipe blog can't talk its way into becoming an instruction.
4. QC gate
A deterministic gate — no model, nothing it can be talked out of — checks the generated document before it can publish: every claim traces to a real source, confidence is capped by how many sources actually agree, no field carries a bare URL, and no unconditional food-safety claim slipped through. One blocking flag stops the document. This gate, not a person's judgment call, is the sole authorizer of what ships.
The corpus you're looking at right now is the interim seed set, written before the QC gate existed. It's being re-run against the gate; until every dish has passed, the site stays out of search results on purpose. That's a QC decision, not an accident — see the review status on the dish itself.
Scraping policy
Fond fetches a small number of pages per dish, on its own terms:
- It identifies itself. Every request carries a real User-Agent string naming the bot, the project, and a contact address:
FondBot/0.1 (+https://fond.mathewhager.com/method; recipe research; contact mat@arda.cards) - It honors robots.txt. Each host's robots.txt is fetched once and cached; a disallowed path is never requested.
- It's rate limited per domain. Requests to the same host are spaced out, so no publisher sees a burst.
- A blocked domain is recorded, not retried. If a host refuses Fond — robots, an error, a network block — that outcome is written down as a dated fact. Future runs skip it instead of knocking on the same shut door.
Food-safety stance
Fond explains why a recipe is the way it is. It is not a food-safety authority, and it doesn't try to be one.
A deterministic scanner — not the language model, and nothing a prompt can talk around — checks every generated document for unconditional safety assurances: doneness or pasteurization temperatures, "safe to leave out overnight," home canning or water-bath claims, cure and nitrite safety, raw egg or dairy for at-risk groups, fermentation safety. Any hit blocks publication, regardless of what source it was drawn from — a wrong or hostile source is still a real-looking citation, so citation doesn't buy a safety claim a pass.
For an actual safety question — is this temperature, this hold time, this canning method safe — ask the USDA, the FDA, or your local health authority, not a recipe site.
Why ‘Fond’?
The pan
The fond is the browned layer stuck under the pan — the flavor most people wash away. This site scrapes up the why.
The French
Fond means base, foundation — stocks are the fonds de cuisine, the base everything else is built on.
The English
Fond of — which is what understanding a dish makes you. Cooks who know the why cook with affection, not anxiety.