Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
Wardn HubTrusted MCP server directory.

Registry

  • MCP Servers
  • Skills
  • Categories

Resources

  • API docs
  • Score method

Contribute

  • Submit server
  • Advertise
© 2026 Wardn Hub
Wardn Hub
MCP ServersSkillsCategoriesAPI docsSubmit server
Submit server
skills/LeoYeAI/openclaw-master-skills/market-morning-brief

Market Morning Brief

1
LeoYeAI/openclaw-master-skills·Finance & Fintech·Review advised·Snapshot ebb9e34f48d7

Summary

Daily morning and evening intelligence digest for prediction market traders. Morning brief: Kalshi portfolio P&L, Polymarket trending markets, crypto prices — scannable in 30 seconds. Evening brief: lightweight market summary or AI-filtered news digest with two-stage Qwen materiality gate. Works standalone; unlocks additional sections automatically when paired with Kalshalyst (edges), Prediction Market Arbiter (divergences), and Xpulse (social signals). Hub of the OpenClaw Prediction Market Trading Stack.

SKILL.md

Market Brief — Daily Morning & Evening Intelligence Digest

Overview

Market Morning Brief is a lightweight, resilient daily intelligence system designed to be the first thing you read each morning. It combines:

  • Portfolio P&L — Your Kalshi positions and unrealized gains/losses
  • Top opportunities — Markets with highest edge (if Kalshalyst cache available)
  • Cross-platform divergences — Kalshi vs Polymarket pricing mismatches (if Arbiter cache available)
  • X signal summaries — Top-performing prediction signals from Twitter/X (if Xpulse cache available)
  • Crypto prices — Bitcoin, Ethereum, plus any configured altcoins (if Coinbase configured)
  • Polymarket insights — Notable markets and volume activity

The brief is designed for 30-second scanning — each section is 3-8 lines maximum. If a data source is unavailable, the section gracefully degrades to "unavailable" and the brief continues. If Kalshi credentials are not configured yet, the brief shows a realistic preview portfolio and edge block so first-time users still see value immediately.

When to Use This Skill

  • You trade prediction markets (Kalshi, Polymarket) and want daily market context
  • You need a quick morning summary: portfolio status + opportunities + signals
  • You want an evening briefing: either lightweight trading summary or AI-filtered news digest
  • You want integration with your other market intelligence tools (Kalshalyst, Arbiter, Xpulse)
  • You want plain text output suitable for SMS, iMessage, or any messaging platform
Installs
0
  • You want AI-powered news curation: two-stage filtering to prevent notification fatigue
  • Every Evening (Default: 6:00 PM): Day's activity summary (positions opened/closed, realized P&L), watch list for overnight risks, top X signals from the day, and unusual market activity.

    Architecture

    Design Philosophy

    Resilience through isolation. Each section:

    • Wrapped in try/except to prevent one failure from breaking the entire brief
    • Reads from cache files (not live APIs) for speed and reliability
    • Gracefully degrades if data unavailable ("unavailable, check Kalshalyst directly")
    • Logs failures without interrupting output

    Plain text output. No markdown, no emojis, no formatting — designed for chat delivery:

    • Compatible with iMessage, SMS, email, web chat, any platform
    • Scannable: max 80 chars per line, clear section headers
    • Readable at a glance in <30 seconds

    Configurable integration. The brief reads from:

    • Optional Kalshalyst cache (.kalshi_research_cache.json)
    • Optional Arbiter cache (.crossplatform_divergences.json)
    • Optional Xpulse cache (.x_signal_cache.json)
    • Optional Coinbase API (if configured)
    • Public Polymarket API (no auth)

    If a cache file doesn't exist (skill not installed), that section simply shows "unavailable".

    Configuration

    Create or update your config.yaml when you want live account data. The first run works without it and shows preview output:

    market_morning_brief:
      enabled: true
      morning_time: "07:30"     # Schedule for morning brief
      evening_time: "18:00"     # Schedule for evening brief
      timezone: "America/New_York"
    
      # Kalshi API (required for portfolio section)
      kalshi:
        enabled: true
        api_key_id: "your-key-id"
        private_key_file: "/path/to/private.key"
    
      # Coinbase API (optional, for crypto prices)
      coinbase:
        enabled: false
        api_key: "sk-..."
        tickers: ["BTC", "ETH"]  # Customize as needed
    
      # Cache paths (for reading other skills' data)
      cache_paths:
        kalshalyst: "./state/.kalshi_research_cache.json"
        arbiter: "./state/.crossplatform_divergences.json"
        xpulse: "./state/.x_signal_cache.json"
    
      # Which sections to include
      include:
        portfolio: true
        kalshalyst_edges: true      # Requires Kalshalyst skill
        arbiter_divergences: true   # Requires Prediction Market Arbiter skill
        xpulse_signals: true        # Requires Xpulse skill
        crypto: false               # Requires Coinbase API key
        polymarket: true            # Free (public API)
    

    Section-by-Section Breakdown

    1. Portfolio Summary

    Data source: Kalshi API (read-only)

    Example output:

    PORTFOLIO (3 positions, +$24 unrealized):
    POTUS-2028-DEM    YES  100@48¢  $48 cost  +$18 unrl (exp: 242 days)
    UKRAINE-2026-NO    YES   50@28¢  $14 cost   +$8 unrl (exp: 118 days)
    FED-MAR-CUT        NO   200@35¢  $70 cost  -$2 unrl (exp: 8 days)
    

    Fields:

    • Ticker | Side (YES/NO) | Quantity @ Price | Cost | Unrealized P&L | Days to Expiration

    Graceful degradation: If Kalshi API unavailable:

    PORTFOLIO: unavailable (check Kalshi API)
    

    2. Kalshalyst Edges (Optional)

    Data source: Kalshalyst cache (.kalshi_research_cache.json)

    Example output:

    EDGES (Kalshalyst, top 3):
    1. POTUS-2028-DEM    NO @ 38%  (+14% edge, 72% conf)
    2. INFLATION-2026    YES @ 68%  (+8% edge, 65% conf)
    3. UKRAINE-PEACE     YES @ 55%  (+6% edge, 58% conf)
    

    Fields:

    • Ticker | Side | Market Price | Edge % | Confidence %

    Graceful degradation: If Kalshalyst skill not installed:

    EDGES: unavailable — unlock with: clawhub install kalshalyst
    

    3. Cross-Platform Divergences (Optional)

    Data source: Prediction Market Arbiter cache (.crossplatform_divergences.json)

    Example output:

    DIVERGENCES (Arbiter, Kalshi ↔ Polymarket):
    UKRAINE-2026-NO    Kalshi 28% ↔ PM 31%  ($0.03 spread, 12% vol diff)
    POTUS-2028-DEM     Kalshi 38% ↔ PM 40%  ($0.02 spread, 8% vol diff)
    

    Fields:

    • Ticker | Kalshi Price ↔ Polymarket Price | Spread | Volume Difference

    Graceful degradation: If Arbiter skill not installed:

    DIVERGENCES: unavailable — unlock with: clawhub install prediction-market-arbiter
    

    4. X Signal Summaries (Optional)

    Data source: Xpulse cache (.x_signal_cache.json)

    Example output:

    X SIGNALS (Xpulse, last 24h):
    Fed rate cut odds +5%   (confidence: 78%, reach: 8.2K)
    Ukraine ceasefire talks (+3%, 72% conf, 5.1K reach)
    

    Fields:

    • Signal | Magnitude | Confidence % | Reach/Strength

    Graceful degradation: If Xpulse skill not installed:

    X SIGNALS: unavailable — unlock with: clawhub install xpulse
    

    5. Crypto Prices (Optional)

    Data source: Coinbase API (requires key + configuration)

    Example output:

    CRYPTO:
    BTC  $62,400  (+1.2%)   | ETH  $3,140  (-0.8%)
    SOL  $142     (-2.1%)   | AVAX $38     (+0.5%)
    

    Fields:

    • Ticker | Price | 24h Change %

    Graceful degradation: If Coinbase not configured:

    CRYPTO: unavailable (configure Coinbase API for crypto prices)
    

    6. Polymarket Activity

    Data source: Public Polymarket API (free)

    Example output:

    POLYMARKET (top 3 by volume):
    POTUS 2028: $2.4M vol, 48% DEM (vs 52% GOP)
    Inflation >4% 2026: $1.1M vol, 32% prob
    Bitcoin $100K by 2026: $0.8M vol, 58% prob
    

    Fields:

    • Market | Volume | Implied Probability | (Context)

    Graceful degradation: If Polymarket API unavailable:

    POLYMARKET: unavailable (check Polymarket directly)
    

    Evening Brief — Lightweight Market Summary + AI-Filtered News

    Sent at configured evening time (default: 6:00 PM). Two variants: lightweight market update or full news digest with materiality filtering.

    Lightweight Market Variant (6-8 lines, trading-focused)

    EVENING BRIEFING — Thursday, March 7, 2026
    
    ACTIVITY:
    Current positions: 3 | Cost: $132 | Unrealized: +$24
    
    OVERNIGHT WATCH:
    • FED-MAR-CUT expires in 8 days — monitor Fed speakers before FOMC
    • UKRAINE-2026 low liquidity (9 contracts asking) — wide spreads
    
    TOP X SIGNALS TODAY:
    • Ukraine ceasefire talks +3% (78% conf)
    • Fed rate cut odds stabilizing (72% conf)
    

    Key differences from morning brief:

    • Shorter (6-8 lines max)
    • Focus on intraday activity (current positions, cost, unrealized P&L)
    • Overnight watch items (expirations, geopolitical risks, liquidity alerts)
    • Top X signals from that day (not 24h rolling)

    Full Evening News Digest (News-focused with AI filtering)

    EVENING NEWS BRIEFING — Thursday, March 7, 2026
    
    🏛️ Fed Signals Cautious Stance on Rate Cuts (87% conf, Reuters)
    📈 Tech Stocks Rally on Earnings Beat (82% conf, Bloomberg)
    🌍 Geopolitical Tensions Escalate Over Trade Deal (79% conf, AP)
    💻 AI Policy Bill Advances in Congress (76% conf, TechCrunch)
    📌 Crypto Markets Stabilize After Volatility (71% conf, CoinDesk)
    

    Features:

    • Category icons: 🏛️ policy, 📈 markets, 💻 technology, 🌍 geopolitics, 📌 general
    • Confidence scores (0-100%) show Qwen relevance assessment
    • Two-stage filtering pipeline (see below)
    • 48-hour rolling history prevents repeated news
    • Fail-closed design: if Qwen unavailable, no news sent (silence over noise)

    Evening Briefing: Two-Stage News Filtering Pipeline

    Evening briefing combines DuckDuckGo news search with local Qwen LLM for AI-powered news curation. Designed to prevent notification fatigue while surfacing genuinely material developments.

    Architecture

    Stage 1: Relevance & Significance Filter

    1. Search for recent news across configured topics (default: prediction markets, AI policy, federal reserve)
    2. Run each article through Qwen: is this significant? (0-1 confidence score, category classification)
    3. Filter to articles with confidence >= min_confidence (default: 0.7)
    4. Limit to top 10 most confident articles for Stage 2

    Stage 2: Materiality Gate (Prevents Notification Fatigue)

    1. Load history of previously sent articles (48h rolling, max 200 entries)
    2. Compare candidate articles against recent history
    3. Qwen decision: is this NEW and MATERIAL? Or just ongoing background noise?
    4. Drop duplicates, commentary, routine announcements
    5. Only pass through genuinely new developments or significant escalations

    Fail-Closed Design:

    • If Qwen unavailable during Stage 1 or Stage 2: drop all articles (silence over noise)
    • If no material news: send nothing (don't interrupt with noise)
    • History persistence: ~/.openclaw/state/evening_news_history.json (max 200 entries, auto-cleanup)

    Example Configuration

    market_morning_brief:
      evening_briefing:
        enabled: true
        mode: "news"                    # "market" for activity summary, "news" for full news digest
        time: "18:00"                   # Briefing time (30-min window)
        materiality_gate: true          # Enable Stage 2 filter (prevents fatigue)
        min_confidence: 0.7             # Minimum relevance threshold (0-1)
        max_per_topic: 3                # Max articles per topic to search
        topics:
          - "prediction markets"
          - "AI policy"
          - "federal reserve"
          - "geopolitics"
    

    Command Usage

    # Lightweight market variant (activity + watch list)
    python scripts/evening_brief.py --mode market
    
    # Full news digest variant
    python scripts/evening_brief.py --mode news
    
    # Force send regardless of time/already-sent-today
    python scripts/evening_brief.py --force
    
    # Dry run (print without sending)
    python scripts/evening_brief.py --dry-run
    
    # Enable verbose logging
    python scripts/evening_brief.py --debug
    

    News History

    Stored at ~/.openclaw/state/evening_news_history.json. Max 200 entries, auto-cleans after 48 hours. Used by Stage 2 materiality gate to prevent duplicate notifications.

    Cache File Integration

    Each optional skill writes a cache file that the Morning Brief reads automatically:

    SkillCache FileSection Unlocked
    Kalshalyststate/.kalshi_research_cache.jsonEdge opportunities
    Prediction Market Arbiterstate/.crossplatform_divergences.jsonCross-platform divergences
    Xpulsestate/.x_signal_cache.jsonX/Twitter signals

    If a cache file doesn't exist, that section shows "unavailable" with the install command. See references/integration.md for cache file schemas.

    Example Complete Morning Brief

    MARKET MORNING BRIEF — Thursday, March 7, 2026
    
    PORTFOLIO (3 positions, +$24 unrealized):
    POTUS-2028-DEM    YES  100@48¢  $48 cost  +$18 unrl (exp: 242 days)
    UKRAINE-2026-NO    YES   50@28¢  $14 cost   +$8 unrl (exp: 118 days)
    FED-MAR-CUT        NO   200@35¢  $70 cost  -$2 unrl (exp: 8 days)
    
    EDGES (Kalshalyst, top 3):
    1. POTUS-2028-DEM    NO @ 38%  (+14% edge, 72% conf)
    2. INFLATION-2026    YES @ 68%  (+8% edge, 65% conf)
    3. UKRAINE-PEACE     YES @ 55%  (+6% edge, 58% conf)
    
    DIVERGENCES (Arbiter):
    UKRAINE-2026-NO    Kalshi 28% ↔ PM 31%  ($0.03 spread)
    POTUS-2028-DEM     Kalshi 38% ↔ PM 40%  ($0.02 spread)
    
    X SIGNALS (last 24h):
    Fed rate cut odds +5%   (78% conf, 8.2K reach)
    Ukraine ceasefire +3%   (72% conf, 5.1K reach)
    
    CRYPTO:
    BTC  $62,400  (+1.2%)   | ETH  $3,140  (-0.8%)
    
    POLYMARKET (top 3 by vol):
    POTUS 2028 DEM: $2.4M vol, 48% prob
    Inflation >4% 2026: $1.1M vol, 32% prob
    Bitcoin >$100K 2026: $0.8M vol, 58% prob
    

    Scheduling & Commands

    Morning Brief (Default: 7:30 AM)

    # Manual trigger
    python scripts/morning_brief.py
    
    # With debug output
    python scripts/morning_brief.py --debug
    
    # Dry run (print without side effects)
    python scripts/morning_brief.py --dry-run
    
    # Custom config path
    python scripts/morning_brief.py --config /path/to/config.yaml
    
    # Via OpenClaw (if integrated):
    openclaw skill run market-morning-brief morning
    

    Cron Scheduling

    30 7 * * * python /path/to/scripts/morning_brief.py              # Morning at 7:30 AM
    0 18 * * * python /path/to/scripts/evening_brief.py --mode market  # Evening at 6:00 PM
    

    Dependencies

    Required: Python 3.10+, pip install kalshi-python requests pyyaml

    For evening news digest: Ollama + Qwen model (ollama pull qwen3:latest), plus pip install ddgs (or duckduckgo-search as fallback).

    Optional skills for additional brief sections: Kalshalyst, Prediction Market Arbiter, Xpulse (see Implementation Notes below).

    Performance & Cost

    Morning Brief

    • Runtime: <5 seconds (all cached data)
    • API calls: 1 (Polymarket public API) + 1 (Kalshi portfolio) = 2 calls
    • Cost: $0 (Kalshi free tier, Polymarket free)

    With Optional Skills

    If Kalshalyst, Arbiter, Xpulse installed:

    • Runtime: <2 seconds (reads cache files)
    • Cost: Only the skill installation costs (brief itself has no additional cost)

    Troubleshooting

    Portfolio not showing: Verify Kalshi API key is configured and not rate-limited. Run python scripts/morning_brief.py --debug.

    Sections showing "unavailable": Expected if the skill isn't installed. Install with the clawhub install command shown in the output, then run the skill once to generate its cache file.

    Evening news empty: Check Ollama is running (ollama list), test Qwen (ollama run qwen3:latest "test"), and verify ddgs (python -c "from ddgs import DDGS; print('OK')").

    Stage 2 drops everything: The materiality gate filters out non-novel news. Clear history with rm ~/.openclaw/state/evening_news_history.json and retry, or disable with --no-materiality-gate.

    Qwen timeout: Reduce article count with --max-per-topic 2 or skip Stage 2 with --no-materiality-gate.

    Implementation Notes

    This skill is designed for standalone operation but unlocks its full potential with the OpenClaw Prediction Market Trading Stack.

    Standalone: Portfolio P&L + Polymarket trending + Crypto prices (if configured). No other skills required.

    With the full stack: Each additional skill adds a new section to your daily brief automatically — no configuration needed. Install skills, run them once, and the Morning Brief picks up their cache files on the next run.

    SkillUnlocksInstall
    KalshalystContrarian edge analysis with Kelly sizingclawhub install kalshalyst
    Prediction Market ArbiterCross-platform Kalshi↔Polymarket divergencesclawhub install prediction-market-arbiter
    XpulseReal-time X/Twitter social signalsclawhub install xpulse
    Portfolio Drift MonitorPosition drift alerts between briefsclawhub install portfolio-drift-monitor
    Kalshi Command CenterDirect trade execution from edge alertsclawhub install kalshi-command-center

    Install the complete stack:

    clawhub install kalshalyst kalshi-command-center polymarket-command-center prediction-market-arbiter xpulse portfolio-drift-monitor market-morning-brief personality-engine
    

    Further Reading

    • See references/sections.md for detailed section documentation
    • See references/integration.md for technical integration guide
    • See references/evening-pipeline.md for evening briefing pipeline documentation

    Support

    For issues: run with DEBUG=1 for verbose output, review references/sections.md and references/integration.md, or check /tmp/market-morning-brief.log.

    Author: KingMadeLLC


    Feedback & Issues

    Found a bug? Have a feature request? Want to share results?

    • GitHub Issues: github.com/kingmadellc/openclaw-prediction-stack/issues
    • X/Twitter: @KingMadeLLC

    Part of the OpenClaw Prediction Stack — the first prediction market skill suite on ClawHub.

    Related skills

    homeassistant-skillgit-commitfinancial-analysis-agentk8s-fta-skillui-design