kansoku-trade/trump-truth-monitor
Use when monitoring or interpreting Donald Trump's Truth Social posts for market-moving events — tariff announcements, sanctions, deals with countries (China / Mexico / Canada / EU / Japan / Korea / Taiwan), specific company / CEO mentions, Fed pressure, energy / oil commentary, crypto policy, or geopolitical escalation. Triggers on "trump 发了什么", "check trump", "trump 关税", "盘前 trump 推", "trump truth social", "trump tweet impact", "trump 对 X 说了什么", or whenever a pre-market gap / intraday spike on policy-sensitive names (semis, China ADRs, autos, energy, banks, defense) needs to be explained.
npx skills add https://github.com/kansoku-trade/kansoku --skill trump-truth-monitor
Pulls Donald Trump's Truth Social feed via the trumpstruth.org RSS mirror, classifies posts into market-relevant topic buckets, and hands the candidate list off for LLM-level market-impact grading.
stock-deep-dive for a name with policy exposure (TSM, NVDA, AAPL, F, GM, XOM, BAC, RTX, LMT)market-session-tracker pre-market protocol — add a Trump-feed passIf the user wants tweet history beyond ~5 days, this skill is insufficient — the RSS mirror only exposes the latest ~100 posts. Route to Factba.se / Roll Call (paid) or note the limitation explicitly.
trumpstruth.org/feed — a public third-party mirror of @realDonaldTrump on Truth Social. RSS 2.0 XML with these fields per item:
| Field | Meaning |
| --------------------- | -------------------------------------------------------------------- |
| <pubDate> | RFC 2822, original Truth Social post timestamp |
| <link> | trumpstruth.org/statuses/{mirror_id} |
| <truth:originalUrl> | truthsocial.com/@realDonaldTrump/{truth_id} — the primary source |
| <description> | Full post body with HTML (links + ellipsis spans) |
The mirror typically lags the original by ≤2 minutes. Single feed pull returns ~100 most recent posts, covering ~5 days at Trump's typical cadence.
fetch.py# Default: last 24h, keyword-filtered, markdown
python3 .claude/skills/trump-truth-monitor/scripts/fetch.py
# Wider window
python3 .claude/skills/trump-truth-monitor/scripts/fetch.py --hours 72
# All posts in feed regardless of keyword
python3 .claude/skills/trump-truth-monitor/scripts/fetch.py --hours 72 --all
# Single topic
python3 .claude/skills/trump-truth-monitor/scripts/fetch.py --topic tariff_trade
# JSON output (for chaining)
python3 .claude/skills/trump-truth-monitor/scripts/fetch.py --json
Topic buckets defined in script: tariff_trade, semi_tech, energy, fed_macro, crypto, geopolitical.
archive.py# Append new posts to journal/trump-feed/YYYY-MM-DD.md (idempotent)
python3 .claude/skills/trump-truth-monitor/scripts/archive.py
# Custom output dir
python3 .claude/skills/trump-truth-monitor/scripts/archive.py --out /path/to/dir
# Silent unless something new was added
python3 .claude/skills/trump-truth-monitor/scripts/archive.py --quiet
The archive de-dupes by mirror status_id — re-running on the same feed is a no-op. Designed to be scheduled (see launchd/README.md). Once archived, posts persist locally even if trumpstruth.org goes down.
--all when context-grazing.--topic. If user names a domain (关税 / 半导体 / 油 / 加密) → pass --topic.fetch.py with chosen flags. Always include --hours — never default to "all of feed" silently.high / med / low / noisetruth:originalUrl (the truthsocial.com link), not the mirror.# Trump's Truth — {WINDOW}
## High-impact (potential market mover)
- [{utc_time}] {one-line summary} — `tier: high` · {topic tags}
> "{verbatim short quote ≤2 sentences}"
- Original: {truthsocial.com URL}
- Possible market read: {sector / ticker level expectation, anchored}
## Medium-impact (directional, no specifics)
- [{utc_time}] {one-line summary}
- Original: {URL}
## Noise (matched keyword, low signal)
- {N} posts ({topic distribution}) — endorsements / personal — not enumerated
⚠ Trump may delete or contradict within hours. Position decisions should require independent confirmation (sector ETF tape, peer reaction, official release).
| Mistake | Reality |
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| Treating script output as "market signal" | Script is a keyword filter. LLM must read each post and tier. |
| Quoting a mirror URL as the source | Always link truth:originalUrl (truthsocial.com). Mirror is a convenience. |
| Reporting Senate endorsements as "policy news" | Politics-only posts with military / energy keywords are noise — filter at tier=noise. |
| "Trump said X about Y" with no link | Always include the truthsocial.com link. User must be able to verify. |
| Pretending tweets are durable | Trump posts can be deleted or retracted within hours. If consulted >12h after, note staleness. |
market-session-tracker pre-market protocol: insert a Trump-feed --hours 14 pull as step 0 (covers post-prev-close to pre-market). If high-tier post exists touching watchlist sectors, escalate to the explanation slot for any gap.stock-deep-dive lens 4 (Catalysts): when the symbol has policy exposure (semis / China ADR / auto / energy / defense / bank), run a Trump-feed --hours 168 and surface high-tier hits.gdelt can confirm market has already picked the post up (i.e. major outlets are reporting it). Trump feed = original; GDELT = market-validated.fetch.py fails — but the archived posts under journal/trump-feed/ remain readable.archive.py (see launchd/) to grow a permanent local record.Once archive.py has been running, journal/trump-feed/YYYY-MM-DD.md accumulates a complete record. To investigate a past day or query historically:
# All tariff-related posts ever archived
grep -l "tariff" journal/trump-feed/*.md
# Specific company mention
grep -B2 -A8 -i "nvidia\|tsmc" journal/trump-feed/*.md
# Posts on a specific date
cat journal/trump-feed/2026-05-26.md
The archive is plain markdown — grep-friendly, git-trackable.
gdelt — market-validated news coverage of a Trump poststock-deep-dive — caller for catalyst-lens enrichmentmarket-session-tracker — caller for pre-market protocolsec-edgar — confirm whether a tweet translates into an actual filing (rare but does happen for trade-policy items affecting specific companies)Take kansoku-trade/trump-truth-monitor from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.