Truth Triage
A cron Worker that watches a high-volume public feed, triages the market-relevant posts with Claude Haiku, and drops a ready-to-paste research prompt into Discord. A draft step — never a trade signal.
What it is
Truth Triage watches Trump’s Truth Social posts and surfaces only the ones that might move markets. Every few minutes it checks the feed, runs a cheap keyword pass, and sends the survivors to Claude Haiku, which returns structured triage — impact, sector, tickers to verify, and a one-line “why.” The result lands in Discord as a color-coded card plus a ready-to-paste prompt for a deeper analysis chat. It is explicitly a triage and drafting step, not a trade trigger.
Why I built it
Market-relevant posts are rare and buried in a high-volume feed. I wanted an early, cheap filter that flagged the few worth a closer look — without paying a model to analyze every post, and without trusting an LLM to quote the source accurately.
How it works
RSS feed ─► keyword cull (free) ─► Haiku triage via AI Gateway ─► Discord
{impact, sector, tickers, why} (embed + paste-block)
KV: dedup · repetition memory · bootstrap guard
The key design choice: the verbatim post text always comes from the feed, never the model. Haiku only produces metadata, so it physically can’t mangle the quote I paste into a deeper analysis. Calls go through a Cloudflare AI Gateway, which adds logging, retries, and provider fallback for free — and makes the model swappable. KV handles deduplication, short-term repetition memory (so it can flag “possible repeat”), and a bootstrap guard: the very first run marks everything seen and sends nothing, so I’m not spammed with the backlog.
The whole pipeline fails open. Malformed triage JSON surfaces as a “review manually” notice rather than getting dropped; an error leaves the post un-seen so it retries next run. It costs about sixty-six cents a month.
What I learned
Separate the deterministic from the probabilistic. The fact (the quote, the date, the link) is plumbing that must be exact; the judgment (is this market-relevant?) is where a cheap model earns its keep. Keeping them in separate lanes is what makes an AI step trustworthy. And designing for failure first — dedup, bootstrap, fail-open — is what lets a thing like this run unattended without becoming a liability.
What’s next
Optionally swapping Haiku for free in-edge inference on Workers AI, and tuning the impact threshold to cut more low-priority noise.