Trump Truth Social Catalyst Lens
A reusable lens for turning Donald Trump's public Truth Social posts,
@realDonaldTrump X posts, and his own disclosed stock holdings into a
short list of US stocks/sectors likely to move, with an honest read on how
reliably each pattern actually pumps a stock. Built to be paired with a periodic
timer that re-fetches and re-scores, accumulating a real hit-rate over time.
Decision-support lens, NOT financial advice and NOT an auto-trader. This
only analyzes publicly available posts and public financial disclosures to
anticipate market reactions. It never places, cancels, or sizes orders. Always
confirm current price/news yourself — these moves are fast, often fade, and
several are pump-and-fade traps (see references/track-record.md).
STEP 0 — ALWAYS REFRESH FIRST (this skill is useless on stale data)
Two things go stale: the skill itself (the ledger / holdings / calibration in
references/ are grown by a periodic timer and pushed to GitHub) and the posts
(Trump posts many times a day; a market-moving one can be minutes old, and there
is no local post archive). Refresh both, in order, before doing anything else:
# 0a. Pull the latest version of this skill (updated ledger, holdings, calibration).
# Best-effort: auto-detects project vs global scope. If it fails, keep going.
skills update trump-truthsocial-catalyst -y
# 0b. Fetch the primary Truth Social archive: text + timestamps + permalinks.
# trumpstruth.org is a third-party archive; keep its numeric archive ids as
# the canonical ids for the existing ledger.
curl -sS -A "Mozilla/5.0" "https://trumpstruth.org/feed" -o /tmp/trump_feed.xml
# 0b-alt. Fetch an independent Truth Social archive for freshness checks and
# fallback when the primary archive is unavailable.
curl -sS -A "Mozilla/5.0" "https://trump.fm/rss/truth.xml" -o /tmp/trump_alt_feed.xml
# 0c. Fetch the latest @realDonaldTrump X posts.
# The wrapper rejects a successful-but-old xreach timeline and tries an
# RSS-Bridge Atom timeline, then the public X profile plus Jina status
# fallback. It does not require browser cookies or login state.
python3 scripts/fetch_x.py --state data/sync_state.json > /tmp/trump_x.json
Then re-read the refreshed references/*.md (don't rely on a copy you read
before 0a) and parse both Truth feeds (see references/methodology.md for ready
parsers). Use trumpstruth.org for the existing truth:<archive_id> ledger ids;
use trump.fm as an independent freshness check and as a fallback capture source.
The archive ids identify posts but are not a monotonic time cursor: sort by
parsed publication time and use last_update_time as the watermark, with the
post id only as a dedupe key/tie-breaker. Compare the newest post timestamp and,
when available, the official Truth platform id. If both feeds agree, an
unchanged newest post is a confirmed no_new_posts result, not a fetch failure.
If they disagree, mark the primary as stale and preserve both source
observations; do not advance the primary cursor from an unverified guess. When
a fallback-only item must be logged, use truthsocial:<platform_id> plus its
canonical Truth permalink and cross-dedupe it against a later
truth:<archive_id> by normalized text and time.
For X, fetch_x.py reports available for a fresh direct timeline,
available_fallback for a newer post verified through RSS-Bridge or the public
X profile/Jina path,
verified_no_new_posts when Jina or an authenticated browser profile confirms
that the visible top post has not changed, stale_unverified with
freshness: exact_status_only when
FxTwitter/VxTwitter can only re-check the saved status, and plain
stale_unverified when no public path responds. The fallback is a
freshness/latest-post check, not a complete historical timeline; never advance
last_tweet_id from an old direct response or an exact-status-only result. If 0a fails, proceed on the cached
skill but note it may be stale; if a source fails (offline / 403 / site down),
say so explicitly and use the other Truth feed plus whatever the user pasted —
never pretend you have fresh data. The official truthsocial.com page/API
remains a browser-or-login fallback only when the Cloudflare challenge can be
legitimately completed; do not substitute an unverified HTML mirror.
What this lens is for
Trump's posts move stocks through a few repeatable mechanisms: he names a
company favorably, announces or hints at policy he controls (tariffs,
contracts, executive orders), or champions a theme (crypto, energy, AI
infrastructure, defense, reshoring). The edge is recognizing which features of
a post reliably pump a stock versus which produce a one-day spike that fades —
and cross-referencing against what he personally owns, because "he owns it →
he boosts it → a government tailwind follows" is his single most repeatable
money-making pattern (the Dell playbook).
This is explicitly a short-horizon catalyst lens, not a fundamentals lens. The
biggest caveat in the whole skill: his posts can pump a stock that is a
terrible long-term hold — his own DJT is down ~77% from its 2024 high and his
memecoins are down 97–99%, yet they still spike when he posts. Separate "will it
pop this week" from "is it a good investment."
How the reference files are organized
Read progressively — pull in only what the task needs.
| File |
What it is |
Read it when |
references/methodology.md |
The tiered "what reliably pumps a stock" playbook: Tier 1–3 patterns, amplifier features, anti-patterns, durability, a per-post classification checklist, and Truth Social / X fetch-parse recipes |
Classifying any post, or judging how strong a signal is |
references/theme-ticker-map.md |
Trump's recurring themes → the tickers/sectors that typically react |
Mapping a topic (tariffs, crypto, energy, AI infra, defense…) to tradable names |
references/holdings-watchlist.md |
Companies Trump's trust disclosed buying in 2026 + his personal/family holdings, flagged for "not-yet-popped" breakout potential; includes the official OGE search/API source for updates |
Building a watchlist, or asking "what does he own / what might pop next" |
references/track-record.md |
The accumulating hit-rate ledger (seeded with documented wins and failures) + a calibration note on what actually has edge |
Deciding how much to weight a given pattern; this is what the timer grows |
references/x-source-notes.md |
@realDonaldTrump X source behavior, cross-source dedupe notes, and historical X seed candidates |
When using or maintaining the X source |
references/maintenance.md |
Rules for the periodic timer: fetch → dedupe → classify → log prediction → score outcome → recalibrate |
Running or wiring up the scheduled refresh |
Workflows
(a) Read one post (or a batch) for tradable signals
- Refresh (Step 0). Identify the newest Truth Social and X posts; dedupe
against anything already in
references/track-record.md by source id and
cross-source normalized text/time.
- For each post, run the classification checklist in
references/methodology.md: is it market-relevant? Which Tier (1 named-stock /
2 policy-sector / 3 macro)? Which amplifier features are present (named public
company, explicit "BUY", policy he controls, he personally owns it, posted
intraday, repeated)?
- Map topic → candidate tickers via
references/theme-ticker-map.md, and check
references/holdings-watchlist.md for an ownership overlap (raises conviction).
- Output, per signal: the post (date + permalink), the implicated ticker(s),
direction, a reliability tier, expected magnitude & durability
(intraday-fade vs. can-hold), and what would invalidate it.
- Weight using
references/track-record.md — favor patterns with a real
accumulated hit-rate over plausible-sounding one-offs. Always frame as
analysis, never as an order.
(b) Build / refresh a Trump-catalyst watchlist
- Pull his disclosed holdings from
references/holdings-watchlist.md. If the
question depends on freshness, check the OGE source listed there for newer
Trump, Donald J 278-T PDFs before treating the watchlist as current.
- Bucket: already popped (Dell-style, catalyst spent) vs. owns-but-quiet
(breakout candidates if the Dell template repeats: ownership + an admin
tailwind like a contract, tariff carve-out, or public praise).
- For each quiet name, note the specific catalyst that would trigger it and a
rough 1–2 month watch window. Keep it advisory.
(c) Judge a single "will this pump X?" question
- Refresh, find the relevant post(s).
- Score the pattern against
references/methodology.md tiers + amplifiers and
the historical analogs in references/track-record.md.
- Give a calibrated answer: likely direction, reliability, magnitude,
durability, and the honest base-rate (e.g., "named-company endorsements pop
reliably intraday; crypto-reserve posts spike then fade next day").
Risk & disclaimer framing (state this when giving any view)
- Short-horizon catalyst, not a thesis. A pop is not a reason to hold. His
own assets (DJT, $TRUMP, $MELANIA) show posts can pump structurally weak names.
- Many signals fade fast. Crypto-reserve and tariff-relief posts often spike
for a day and give it back; size and timing matter, and this skill does not set
either — the user does.
- Conflict-of-interest is a feature of the data, not an endorsement. He has
bought stocks (Dell, Palantir, Nvidia, media names) that his administration
then affected. We note the overlap as a signal, while flagging the obvious
manipulation/legal scrutiny around it. Do not act illegally on it.
- Disclosures are ranges and self-reported. Holding figures come from OGE
periodic transaction reports (dollar ranges, not exact amounts) and may lag.
- This is a lens, not a signal feed. It surfaces better questions about a
Trump headline. It is NOT auto-trading, NOT a recommendation, NOT financial
advice. Every order is the reader's own manual, confirmed decision.
1---2name: trump-truthsocial-catalyst3description: Decision-support lens for reading Donald Trump's Truth Social posts, @realDonaldTrump X posts, public statements, and disclosed personal holdings as short-term US-stock catalysts — which names or sectors are likely to pop, and how reliably. Use this skill whenever the user asks what a Trump post / statement means for a stock, mentions "特朗普", "Trump post", "Truth Social", "@realDonaldTrump", "POTUS", a Trump endorsement/attack of a company, a tariff / crypto / energy / AI-infra / defense policy signal from Trump, or wants to know which stocks Trump owns or might pump next. Also trigger when evaluating a buy/sell around a Trump headline or building a Trump-catalyst watchlist. Live-fetches the latest public posts first (no local archive). Decision-support only — never auto-trades and never places or cancels orders.4---56# Trump Truth Social Catalyst Lens78A reusable lens for turning **Donald Trump's public Truth Social posts**,9**@realDonaldTrump X posts**, and **his own disclosed stock holdings** into a10short list of US stocks/sectors likely to move, with an honest read on *how11reliably* each pattern actually pumps a stock. Built to be paired with a periodic12timer that re-fetches and re-scores, accumulating a real hit-rate over time.1314> **Decision-support lens, NOT financial advice and NOT an auto-trader.** This15> only *analyzes publicly available posts and public financial disclosures* to16> anticipate market reactions. It never places, cancels, or sizes orders. Always17> confirm current price/news yourself — these moves are fast, often fade, and18> several are pump-and-fade traps (see `references/track-record.md`).1920---2122## STEP 0 — ALWAYS REFRESH FIRST (this skill is useless on stale data)2324Two things go stale: the **skill itself** (the ledger / holdings / calibration in25`references/` are grown by a periodic timer and pushed to GitHub) and the **posts**26(Trump posts many times a day; a market-moving one can be minutes old, and there27is **no local post archive**). Refresh both, in order, before doing anything else:2829```bash30# 0a. Pull the latest version of this skill (updated ledger, holdings, calibration).31# Best-effort: auto-detects project vs global scope. If it fails, keep going.32skills update trump-truthsocial-catalyst -y3334# 0b. Fetch the primary Truth Social archive: text + timestamps + permalinks.35# trumpstruth.org is a third-party archive; keep its numeric archive ids as36# the canonical ids for the existing ledger.37curl -sS -A "Mozilla/5.0" "https://trumpstruth.org/feed" -o /tmp/trump_feed.xml3839# 0b-alt. Fetch an independent Truth Social archive for freshness checks and40# fallback when the primary archive is unavailable.41curl -sS -A "Mozilla/5.0" "https://trump.fm/rss/truth.xml" -o /tmp/trump_alt_feed.xml4243# 0c. Fetch the latest @realDonaldTrump X posts.44# The wrapper rejects a successful-but-old xreach timeline and tries an45# RSS-Bridge Atom timeline, then the public X profile plus Jina status46# fallback. It does not require browser cookies or login state.47python3 scripts/fetch_x.py --state data/sync_state.json > /tmp/trump_x.json48```4950Then **re-read the refreshed `references/*.md`** (don't rely on a copy you read51before 0a) and parse both Truth feeds (see `references/methodology.md` for ready52parsers). Use `trumpstruth.org` for the existing `truth:<archive_id>` ledger ids;53use `trump.fm` as an independent freshness check and as a fallback capture source.54The archive ids identify posts but are not a monotonic time cursor: sort by55parsed publication time and use `last_update_time` as the watermark, with the56post id only as a dedupe key/tie-breaker. Compare the newest post timestamp and,57when available, the official Truth platform id. If both feeds agree, an58unchanged newest post is a confirmed `no_new_posts` result, not a fetch failure.59If they disagree, mark the primary as stale and preserve both source60observations; do not advance the primary cursor from an unverified guess. When61a fallback-only item must be logged, use `truthsocial:<platform_id>` plus its62canonical Truth permalink and cross-dedupe it against a later63`truth:<archive_id>` by normalized text and time.64For X, `fetch_x.py` reports `available` for a fresh direct timeline,65`available_fallback` for a newer post verified through RSS-Bridge or the public66X profile/Jina path,67`verified_no_new_posts` when Jina or an authenticated browser profile confirms68that the visible top post has not changed, `stale_unverified` with69`freshness: exact_status_only` when70FxTwitter/VxTwitter can only re-check the saved status, and plain71`stale_unverified` when no public path responds. The fallback is a72freshness/latest-post check, not a complete historical timeline; never advance73`last_tweet_id` from an old direct response or an exact-status-only result. If 0a fails, proceed on the cached74skill but note it may be stale; if a source fails (offline / 403 / site down),75say so explicitly and use the other Truth feed plus whatever the user pasted —76never pretend you have fresh data. The official `truthsocial.com` page/API77remains a browser-or-login fallback only when the Cloudflare challenge can be78legitimately completed; do not substitute an unverified HTML mirror.7980---8182## What this lens is for8384Trump's posts move stocks through a few repeatable mechanisms: he **names a85company favorably**, **announces or hints at policy he controls** (tariffs,86contracts, executive orders), or **champions a theme** (crypto, energy, AI87infrastructure, defense, reshoring). The edge is recognizing *which* features of88a post reliably pump a stock versus which produce a one-day spike that fades —89and cross-referencing against **what he personally owns**, because "he owns it →90he boosts it → a government tailwind follows" is his single most repeatable91money-making pattern (the Dell playbook).9293This is explicitly a *short-horizon catalyst* lens, not a fundamentals lens. The94biggest caveat in the whole skill: **his posts can pump a stock that is a95terrible long-term hold** — his own DJT is down ~77% from its 2024 high and his96memecoins are down 97–99%, yet they still spike when he posts. Separate "will it97pop this week" from "is it a good investment."9899---100101## How the reference files are organized102103Read progressively — pull in only what the task needs.104105| File | What it is | Read it when |106|---|---|---|107| `references/methodology.md` | The tiered "what reliably pumps a stock" playbook: Tier 1–3 patterns, amplifier features, anti-patterns, durability, a per-post classification checklist, and Truth Social / X fetch-parse recipes | Classifying any post, or judging how strong a signal is |108| `references/theme-ticker-map.md` | Trump's recurring themes → the tickers/sectors that typically react | Mapping a topic (tariffs, crypto, energy, AI infra, defense…) to tradable names |109| `references/holdings-watchlist.md` | Companies Trump's trust disclosed buying in 2026 + his personal/family holdings, flagged for "not-yet-popped" breakout potential; includes the official OGE search/API source for updates | Building a watchlist, or asking "what does he own / what might pop next" |110| `references/track-record.md` | The accumulating hit-rate ledger (seeded with documented wins and failures) + a calibration note on what actually has edge | Deciding *how much to weight* a given pattern; this is what the timer grows |111| `references/x-source-notes.md` | @realDonaldTrump X source behavior, cross-source dedupe notes, and historical X seed candidates | When using or maintaining the X source |112| `references/maintenance.md` | Rules for the periodic timer: fetch → dedupe → classify → log prediction → score outcome → recalibrate | Running or wiring up the scheduled refresh |113114---115116## Workflows117118### (a) Read one post (or a batch) for tradable signals1191201. **Refresh** (Step 0). Identify the newest Truth Social and X posts; dedupe121 against anything already in `references/track-record.md` by source id and122 cross-source normalized text/time.1232. For each post, run the **classification checklist** in124 `references/methodology.md`: is it market-relevant? Which Tier (1 named-stock /125 2 policy-sector / 3 macro)? Which amplifier features are present (named public126 company, explicit "BUY", policy he controls, he personally owns it, posted127 intraday, repeated)?1283. Map topic → candidate tickers via `references/theme-ticker-map.md`, and check129 `references/holdings-watchlist.md` for an ownership overlap (raises conviction).1304. Output, per signal: the post (date + permalink), the implicated ticker(s),131 **direction**, a **reliability tier**, expected **magnitude & durability**132 (intraday-fade vs. can-hold), and what would invalidate it.1335. Weight using `references/track-record.md` — favor patterns with a real134 accumulated hit-rate over plausible-sounding one-offs. Always frame as135 analysis, never as an order.136137### (b) Build / refresh a Trump-catalyst watchlist1381391. Pull his disclosed holdings from `references/holdings-watchlist.md`. If the140 question depends on freshness, check the OGE source listed there for newer141 `Trump, Donald J` 278-T PDFs before treating the watchlist as current.1422. Bucket: **already popped** (Dell-style, catalyst spent) vs. **owns-but-quiet**143 (breakout candidates if the Dell template repeats: ownership + an admin144 tailwind like a contract, tariff carve-out, or public praise).1453. For each quiet name, note the *specific* catalyst that would trigger it and a146 rough 1–2 month watch window. Keep it advisory.147148### (c) Judge a single "will this pump X?" question1491501. Refresh, find the relevant post(s).1512. Score the pattern against `references/methodology.md` tiers + amplifiers and152 the historical analogs in `references/track-record.md`.1533. Give a calibrated answer: likely direction, reliability, magnitude,154 durability, and the honest base-rate (e.g., "named-company endorsements pop155 reliably intraday; crypto-reserve posts spike then fade next day").156157---158159## Risk & disclaimer framing (state this when giving any view)160161- **Short-horizon catalyst, not a thesis.** A pop is not a reason to hold. His162 own assets (DJT, $TRUMP, $MELANIA) show posts can pump structurally weak names.163- **Many signals fade fast.** Crypto-reserve and tariff-relief posts often spike164 for a day and give it back; size and timing matter, and this skill does not set165 either — the user does.166- **Conflict-of-interest is a feature of the data, not an endorsement.** He has167 bought stocks (Dell, Palantir, Nvidia, media names) that his administration168 then affected. We note the overlap as a *signal*, while flagging the obvious169 manipulation/legal scrutiny around it. Do not act illegally on it.170- **Disclosures are ranges and self-reported.** Holding figures come from OGE171 periodic transaction reports (dollar *ranges*, not exact amounts) and may lag.172- **This is a lens, not a signal feed.** It surfaces better questions about a173 Trump headline. It is NOT auto-trading, NOT a recommendation, NOT financial174 advice. Every order is the reader's own manual, confirmed decision.