Memory

food-recall-radar

Try it

Use when you want to check whether food you actually bought is affected by an active recall, after hearing news of an outbreak or a brand recall, when organizing the pantry, after a grocery run, or on a schedule (weekly recall audit) — builds a personal pantry inventory of brands/products/UPCs, queries openFDA's live food-enforcement recall database, fuzzy-matches your items against ongoing Class I/II/III recalls with lot-code pattern extraction, and outputs a risk-ranked action list (check / discard / return-for-refund).

What it does

Food recalls happen constantly — thousands per year in the US alone — but almost nobody hears about the one that affects *their* pantry. News covers outbreaks (Listeria in ice cream, Salmonella in eggs, undeclared peanuts in a cookie), not the 200 quieter recalls of store-brand products. The FDA's…

The skill document

Food Recall Radar

Overview

Food recalls happen constantly — thousands per year in the US alone — but almost nobody hears about the one that affects their pantry. News covers outbreaks (Listeria in ice cream, Salmonella in eggs, undeclared peanuts in a cookie), not the 200 quieter recalls of store-brand products. The FDA's own estimate is that recalls reach consumers only a fraction of the time, and contaminated lots sit in kitchens for weeks. The gap isn't data — recalls are public within days — it's matching: nobody has the patience to cross-reference a scrolling recall list against their own groceries.

This skill closes that gap with a personal pantry inventory + live recall matching:

  1. Pantry inventory — record what you buy (brand + product, optionally UPC and lot). A one-time 15-minute pantry scan, then 20 seconds per grocery run.
  2. Live matching — pulls ongoing recalls from openFDA's food enforcement database (no API key required for light use) and fuzzy-matches against your items: brand containment, product-token overlap, sequence similarity.
  3. Lot intelligence — extracts lot/code/date patterns from the recall notice and tells you exactly where to look on your package, instead of making you re-read the whole notice.
  4. Ranked actions — Class I (reasonable probability of serious harm) first: check the package / discard / return for refund.

Everything is offline-first: pantry is local JSON, recall data can be cached with --offline, and the script is pure stdlib.

When to Use

  • Heard about a recall/outbreak — "wasn't there a spinach recall? did we buy that brand?" → match
  • Weekly household audit — 30 seconds, catches the recalls you never heard of → audit
  • After a grocery run — add new items in one command → import-receipt
  • Pantry reorganization / moving — build the initial inventory → add
  • Vulnerable household — pregnant, elderly, under-5, immunocompromised, allergies: undeclared allergen recalls are Class I for you even when rated II for the general public
  • Don't use for: pet food (FDA maintains a separate animal-food enforcement file), drugs, or devices — different openFDA endpoints; and never for diagnosing illness — that's a doctor.

Commands

# Record what you own (UPC optional but makes matching near-exact)
python3 scripts/recall_radar.py add --brand "Pillsbury" --product "Golden Layer Biscuits" \
    --upc 018000000000 --lot "K1234" --notes "bought 2026-08-30, fridge"
python3 scripts/recall_radar.py add --brand "Simple Truth" --product "Organic Baby Spinach 5oz"

# Paste a whole receipt / shopping list at once: "Brand Product" per line
python3 scripts/recall_radar.py import-receipt
Pillsbury Golden Layer Biscuits
Simple Truth Organic Baby Spinach 5oz
^D

# Check your pantry against LIVE ongoing recalls (openFDA)
python3 scripts/recall_radar.py match

# Broad weekly audit — active recalls + category heuristics even without brand hits
python3 scripts/recall_radar.py audit

# Use a cached JSON file instead of the network (offline / rate-limited)
python3 scripts/recall_radar.py match --offline --data references/sample-recalls.json

# Manage inventory
python3 scripts/recall_radar.py list
python3 scripts/recall_radar.py remove --brand "Simple Truth" --product "Organic Baby Spinach 5oz"
python3 scripts/recall_radar.py report          # full history of matched recalls

Pantry lives at ~/.pantry.json (--file to override). An openFDA API key is optional (--api-key or OPENFDA_API_KEY env) — without one you get a lower rate limit, which a weekly household audit never approaches.

How Matching Works (so you can trust or override it)

Every ongoing recall is scored against every pantry item on three signals:

SignalMeaningWeight
Brand containmentyour brand appears in the recall's recalling-firm or product description (fuzzy)high
Product token overlapshared meaningful words ("golden layer biscuits" vs "biscuits southern style")medium
Sequence similaritySequenceMatcher ratio on normalized stringstie-breaker

Scores above the threshold print with a VERIFY marker — a human looks at the package. UPC equality alone (when both sides have one) is a near-exact hit marked MATCH. The tool deliberately over-notifies: a false "go check the fridge" costs 10 seconds; a missed Class I Listeria exposure costs a lot more. Never discard food purely on the script's say-so — confirm against the linked recall notice, which is printed with every hit.

Reading a Hit

[RISK 1] Class I  ── brand: Pillsbury / product: biscuits
  recall:     Soft biscuits recalled over Listeria monocytogenes
  firm:       Generic Foods Co.
  reason:     Listeria monocytogenes
  dates:      2026-08-01 → ongoing
  lot intel:  look for: lot codes starting 'K1', best-by 09/2026
  action:     DO NOT EAT — check package; return for refund or discard
  notice:     https://www.fda.gov/safety/recalls/...

Class I = reasonable probability of serious adverse health consequences (act now, especially for vulnerable household members). Class II = remote probability / temporary harm. Class III = unlikely to cause harm. Distribution dates tell you whether your purchase window overlaps.

Common Pitfalls

  1. Trusting brand names literally. Store brands are manufactured by third parties: "Simple Truth" spinach may be recalled under the co-packer's name. That's why audit also runs category heuristics (product-type words without a brand hit → WATCH).
  2. Ignoring UPC check digits. If you type a UPC by hand and get a MATCH on a wrong-digit variant, verify the full 12-digit string against the package before discarding anything.
  3. Treating "no results" as "safe forever." Recalls are matched against ongoing enforcement reports. Run audit weekly; newly announced recalls appear within days.
  4. Discarding without reading the notice. Many recalls affect specific lots/plants/dates only. The printed notice URL states exactly which packages are affected — read it before throwing food away or demanding refunds.
  5. Rate limits. Without an API key openFDA allows modest request volumes; a household runs 1–2 requests per week. If you script this hourly, get the free key and set OPENFDA_API_KEY.
  6. Allergen recalls and severity ratings. A Class II "undeclared milk" is Class I for your household if someone is anaphylactic. Severity flags are population-level, not personal.

Verification Checklist

  • Pantry has at least the staples you'd be upset to hear were recalled (produce, dairy, frozen, pantry goods)
  • match runs clean against live openFDA (or --offline with cached data)
  • Every VERIFY/MATCH hit checked against the printed FDA notice URL
  • audit scheduled weekly (add it to whatever runs your household chores)
  • New grocery trips appended via import-receipt — 20 seconds, not a re-scan

One-Shot Recipes

"There was a recall on the news about ice cream"

python3 scripts/recall_radar.py add --brand "Nice!" --product "Vanilla Ice Cream 48oz"
python3 scripts/recall_radar.py match

Weekly Sunday audit (offline-first)

python3 scripts/recall_radar.py audit --api-key "$OPENFDA_API_KEY"

Testing the matcher without network

python3 scripts/recall_radar.py add --brand "Tasty Blend" --product "Frozen Strawberries 12oz"
python3 scripts/recall_radar.py match --offline --data references/sample-recalls.json

Vulnerable household member (pregnancy / chemo / toddler)

python3 scripts/recall_radar.py audit   # weekly, minimum — Class I Listeria hits matter most

Related skills

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván555 installs18 stars

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván854 installs69 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Post videos, photos, text, and documents to 10 social platforms through a single REST API call.

by victorcavero14375 installs50 stars

More from voronindenis5

Browse all skills

Prepare salary negotiations with a structured toolkit: market-rate anchoring math, walk-away floor calculation, total-compensation evaluation (equity, bonuses, benefits), negotiation scripts for offers, raises, and counter-offers, and BATNA analysis. Use when the user has a job offer, is preparing a raise conversation, wants to know if their pay is competitive, or needs scripts and a strategy for negotiating compensation.

by voronindenis51 installs

Agent self-awareness of cognitive states — context fatigue, attention drift, memory debt, confidence erosion, and skill staleness. Detect, report, and mitigate degrading conditions before they cause failures.

by voronindenis5

Plan what happens to your digital life if you die or become incapacitated. Inventory accounts, subscriptions, crypto wallets, important files, social media legacy contacts, and generate a sealed instruction document for trusted family. Includes encrypted digital will template and printable emergency access guide.

by voronindenis5

Use when an agent task fails or produces unexpected results. Performs structured post-mortem root cause analysis: categorizes the failure, traces the exact failure point through tool-call logs, reconstructs the decision chain, generates a post-mortem report, and saves lessons to prevent recurrence.

by voronindenis5

Excavate forgotten solutions, code snippets, and decisions from past conversation sessions. Use when the user is re-solving a problem you've likely solved before, hunting for a lost snippet, or wants to mine session history for buried knowledge instead of starting from scratch.

by voronindenis5