nativ3ai/hermes-geopolitical-market-sim/geopolitical-market-sim

Claude Code and agent skill by nativ3ai/hermes-geopolitical-market-sim

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

PrediHermes, also named geopolitical-market-sim, tracks geopolitical topics, selects relevant open Polymarket contracts near deadline, generates MiroFish seed packets from WorldOSINT data, runs or inspects MiroFish simulations, and resolves historical branches or injected actors from local artifacts. Use this when the user wants PrediHermes, recurring geopolitical prediction-market monitoring, topic tracking, counterfactual actor injection, simulation comparison, or a local automation path from news + markets into MiroFish.

Install

npx vskill@latest install nativ3ai/hermes-geopolitical-market-sim/geopolitical-market-sim

SKILL.md

PrediHermes

PrediHermes is the public name of the geopolitical-market-sim skill.

Use this skill for the local WorldOSINT -> Polymarket -> MiroFish workflow.

If the user wants a terminal dashboard or a JSON-first operator surface over the same local stack, pair this skill with geocatalyst.

Helper script path: ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py

Command policy:

  • Prefer predihermes <command> ... if available on PATH.
  • Fallback to python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py <command> ....
  • Do not stop after one failed shorthand attempt; retry with the full script path.

What it does

  • stores tracked geopolitical topics in ~/.hermes/data/geopolitical-market-sim/topics.json
  • fetches topic-relevant RSS/news from local WorldOSINT headless modules
  • can attach topic-specific WorldOSINT module sets and module params
  • searches open Polymarket markets, prefers near-deadline contracts, and pulls top-of-book pricing
  • writes a MiroFish-ready seed packet and raw snapshot under ~/.hermes/data/geopolitical-market-sim/runs/...
  • writes a cleaner simulation_brief.md per run for graph construction, so local extraction sees the evidence instead of dashboard metadata
  • optionally drives the full MiroFish API pipeline with moderate defaults

Treat Iran as an example, not a built-in assumption. This skill is meant for reusable tracked topics.

Default operating mode

Use moderate settings unless the user asks otherwise:

  • platform=parallel
  • max_rounds=24
  • use_llm_for_profiles=false
  • enable_graph_memory_update=false
  • do not generate the MiroFish report unless the user asks

Keep cast generation deterministic and local by default. Do not use Hermes as the per-round actor engine or as the default cast generator. The right split is:

  • local model / rule-based defaults create the cast
  • operator overrides come from a profile manifest when manual steering is needed

First checks

Run health before first use or when failures look environmental:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py health

If MiroFish is down, do not claim the simulation ran. If WorldOSINT is down, do not claim the packet is current. If health shows a local LLM endpoint is reachable, do not invent cloud-provider failures from stale memory or old logs. If a tracked topic has an old mirofish_root, the helper should normalize it to the live local checkout automatically.

GeoCatalyst companion terminal

GeoCatalyst is the companion terminal for this skill. Recommend it when the user needs:

  • a live TUI for markets, catalysts, sources, and orderbooks
  • a JSON-first CLI for another tool, cron flow, or agent
  • direct inspection of PrediHermes / MiroFish runs, rounds, actors, and

counterfactual branches

Install:

bash
npm install -g geocatalyst

Run:

bash
geocatalyst doctor
geocatalyst stack up
geocatalyst

Headless examples:

bash
geocatalyst market desk --selector "US x Iran ceasefire by April 15?" --mode live
geocatalyst market timeline --selector "US x Iran ceasefire by April 15?" --mode live
geocatalyst simulation detail --selector "US x Iran ceasefire by April 15?" --mode live

Track a topic

Decide these fields up front:

  • topic_id: stable slug for scheduling and retrieval
  • topic: the event class or forecast theme
  • market_query: what to search on Polymarket
  • keyword: terms that should survive RSS filtering
  • headless_module: which WorldOSINT modules matter for this topic
  • module_param: optional per-module overrides

If the user does not specify modules, use:

  • news_rss
  • intelligence_risk_scores
  • military_usni
  • intelligence_findings
  • polymarket_intel

Contract policy:

  • treat the selected primary Polymarket contract as the canonical resolution anchor
  • derive the operative date/deadline from the contract question and resolution description, not just the API close timestamp and not just the user's shorthand
  • if the user's wording says one date but the selected contract resolves on another, do not silently proceed with the mismatch
  • either update the tracked topic so the topic/query matches the selected contract, or tell the operator the contract/date mismatch explicitly
  • never "fix" junk actors by hardcoding ad-hoc banned names; filtering must stay dynamic and anchored to the contract question, description, and topic terms

Generic pattern:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
track-topic \
--topic-id <topic-id> \
--topic "<topic>" \
--market-query "<market query>" \
--keyword <term1> --keyword <term2> \
--headless-module news_rss

Custom module params use either:

  • --module-param 'news_rss.max_total=120'
  • --module-param 'news_rss={\"max_total\":120,\"limit_per_feed\":15}'
bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
track-topic \
--topic-id iran-conflict \
--topic "Iran conflict and nuclear diplomacy" \
--market-query "Iran nuclear deal" \
--keyword iran --keyword israel --keyword hormuz --keyword nuclear --keyword enrichment --keyword iaea \
--region-code IR --region-code IL --region-code SA --region-code US \
--theater-region "Persian Gulf" \
--theater-region "Arabian Sea" \
--theater-region "Red Sea" \
--theater-region "Eastern Mediterranean Sea"

Run ad hoc without saving

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
run-topic \
--topic "Iran conflict and nuclear diplomacy" \
--market-query "Iran nuclear deal" \
--keyword iran --keyword israel --keyword hormuz --keyword nuclear --keyword enrichment --keyword iaea \
--simulate

Use run-topic for one-off questions and track-topic plus run-tracked for scheduled workflows.

Run a tracked topic

Seed packet only:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
run-tracked iran-conflict

This is expected to produce a seed-only run. Do not describe a seed-only run as a failed simulation or as an LLM auth problem unless a fresh health check or a direct runtime error proves that.

Seed packet plus MiroFish simulation:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
run-tracked iran-conflict \
--simulate

If the operator wants to edit or prune the cast before the next run, export a profile manifest from a finished simulation first:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
profile-template \
--simulation-id sim_0e4e0705893c

Then wire that JSON back into the tracked topic:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
update-topic iran-conflict \
--set-profile-overrides-path /absolute/path/to/profile-manifest.json

The manifest is operator-editable. Use it to disable weak actors or rewrite entity_type, name, user_name, persona, bio, and related profile fields before the next run.

Manage tracked topics

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py list-topics
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py untrack-topic <topic-id>

Modular control for tracked topics

List available WorldOSINT modules first:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py list-worldosint-modules

Use update-topic to change modules and execution behavior without recreating the topic:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
update-topic iran-conflict \
--add-headless-module military_naval \
--set-module-param 'news_rss.max_total=160' \
--set-platform parallel \
--set-max-rounds 36

Useful modular flags:

  • --set-headless-module <module> (repeatable): replace module set
  • --add-headless-module <module> and --remove-headless-module <module>
  • shorthand aliases also work: --set-module, --add-module, --remove-module
  • --set-topic <text> and --set-market-query <text>: realign the tracked topic to the actual contract being targeted
  • --set-keyword <term>, --add-keyword <term>, --remove-keyword <term>
  • --add-region-code <code>, --remove-region-code <code>
  • --set-module-param 'module.key=value'
  • --remove-module-param module.key or --remove-module-param module
  • --set-platform twitter|reddit|parallel
  • --set-max-rounds <n>
  • --set-profile-overrides-path /absolute/path/to/profile-manifest.json

Natural Hermes ask patterns for module control:

  • "Use PrediHermes list-worldosint-modules and propose the best modules for Hormuz risk."
  • "Use PrediHermes update-topic iran-conflict and add <module>, remove <module>, then show dashboard."

How to use the output

After a run:

  • read run_summary.md
  • if simulation ran, read simulation_summary.md
  • use the selected primary contract question and description as the resolution anchor
  • prefer the contract's own resolution date wording over loose topic labels or stale API close timestamps
  • if the selected contract date conflicts with the topic label, say that plainly and normalize the topic before treating future runs as comparable
  • separate these clearly in your answer:
  • current market price / bid-ask
  • simulation-derived directional view
  • what evidence would change the call

Hermes CLI dashboard and command awareness

PrediHermes can print a terminal-native ASCII dashboard so users see pipeline status directly in Hermes:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py dashboard --topic-id iran-conflict

This dashboard shows:

  • primary market bid/ask/deadline
  • OSINT signal counts (headlines, theme, risk summary, modules)
  • curated intelligence findings and matched Polymarket flow
  • simulation status/action totals when simulation artifacts exist
  • decision call, confidence, and top alerts from the compiled artifact layer

PrediHermes also exposes a Rust local workbench so operators can browse topics, runs, evidence, alerts, accountability, and branch summaries without the web frontend:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
tui \
--topic-id iran-conflict

The tui command will compile the latest artifacts first, then launch the local workbench. It now includes:

  • a large ASCII PREDIHERMES boot header
  • a short loading sequence before the control room comes online
  • dedicated panes for Topics, Runs, Branches, and Details
  • lightweight live motion in the header and signal bars so focus and status stay visible in the terminal

Useful TUI controls:

  • 1 / 2 / 3 / 4 / 5: jump focus to Topics, Runs, Branches, Tabs, or Detail
  • Tab: cycle focus across panes
  • j / k: move inside the active pane
  • h / l: change detail tab
  • Enter: from Branches, open the selected branch detail directly
  • c: print a ready-to-run create-branch command template into the footer based on the selected run
  • ?: toggle the help overlay
  • r: reload compiled artifacts
  • q: quit

If the user wants a non-interactive refresh without opening the workbench:

bash
python3 ~/.hermes/skills/research/geopolitical-market-sim/scripts/geopolitical_market_pipeline.py \
compile-artifacts \
--topic-id iran-conflict

To show command awareness/help for users inside Hermes:

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
121
Repository forks
12
7-day trend score
24

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 23 Jun 2026, 4 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/nativ3ai/hermes-geopolitical-market-sim/geopolitical-market-sim/badge)](https://verified-skill.com/skills/nativ3ai/hermes-geopolitical-market-sim/geopolitical-market-sim)

Something wrong with this skill or its page? Tell us.