mcpField
T
trump-truthsocial-catalyst

trump-truthsocial-catalyst

github.com/yan-labsOther1085 installsUpdated 4w ago
Repository

About trump-truthsocial-catalyst

A reusable analysis skill that evaluates Donald Trump's public Truth Social and X posts alongside disclosed holdings to identify short-term US stock and sector catalysts. It emphasizes calibrated reliability and historical hit rates, and is explicitly not financial advice or an auto-trader.

Key features

  1. 01Classifies post-based market catalysts
  2. 02Maps themes to stocks and sectors
  3. 03Checks disclosed holdings for overlap
  4. 04Calibrates signals against a track record
  5. 05Refreshes post sources and reference data

Use cases

  1. 01Assessing the likely market effect of a new post
  2. 02Building a watchlist from disclosed holdings
  3. 03Comparing catalyst reliability and durability

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/yan-labs/trump-truthsocial-catalyst --skill trump-truthsocial-catalyst

After installing, type/trump-truthsocial-catalystin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

README.md
.gitignore
skills.sh.json
data/
sync_state.json
references/
maintenance.md
holdings-watchlist.md
theme-ticker-map.md
methodology.md
x-source-notes.md
track-record.md
scripts/
fetch_x.py
public_x_profile.py
tests/
test_public_x_profile.py

Details

From the project README

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 --fail-with-body --retry 2 --retry-delay 1 --retry-connrefused -A "Mozilla/5.0" "https://www.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 --fail-with-body --retry 2 --retry-delay 1 --retry-connrefused -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 parses exact ids, text, and created_at_ms
#     from the public X profile HTML and uses Jina only for profile gaps. 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 HTML/Jina path, verified_no_new_posts when the public profile HTML, 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.

FileWhat it isRead it when
references/methodology.mdThe 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 recipesClassifying any post, or judging how strong a signal is
references/theme-ticker-map.mdTrump's recurring themes → the tickers/sectors that typically reactMapping a topic (tariffs, crypto, energy, AI infra, defense…) to tradable names
references/holdings-watchlist.mdCompanies 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 updatesBuilding a watchlist, or asking "what does he own / what might pop next"
references/track-record.mdThe accumulating hit-rate ledger (seeded with documented wins and failures) + a calibration note on what actually has edgeDeciding 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 candidatesWhen using or maintaining the X source
references/maintenance.mdRules for the periodic timer: fetch → dedupe → classify → log prediction → score outcome → recalibrateRunning or wiring up the scheduled refresh

Workflows

(a) Read one post (or a batch) for tradable signals
  1. 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.
  2. 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)?
  3. Map topic → candidate tickers via references/theme-ticker-map.md, and check references/holdings-watchlist.md for an ownership overlap (raises conviction).
  4. 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.
  5. 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
  1. 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.
  2. 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).
  3. 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
  1. Refresh, find the relevant post(s).
  2. Score the pattern against references/methodology.md tiers + amplifiers and the historical analogs in references/track-record.md.
  3. 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.

Comments

Markdown supported