#957 by GitHub stars

komako-workshop/digital-oracle

Answer prediction questions using market trading data, not opinions. Use when the user asks probability questions about geopolitics, economics, markets, industries, or any topic where real money is being traded on the outcome. Examples: 'What's the probability of WW3?', 'Will there be a recession?',

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

a63e4c19a2f3 → a63e4c19a2f3

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → a63e4c19a2f3

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit a63e4c19a2f3313d54914c44666febaf5ffb9d6f

910GitHub stars
4stars in 7 days
1skill in this repository
0commits in 30 days

Heat

4.6
  • Star growth, last 7 daysAhead of 67% of tracked repositories
  • Star growth, last 24 hoursAhead of 91% of tracked repositories
  • Rank movement, last 7 daysAhead of 19% of tracked repositories
  • Commits, last 30 daysAhead of 0% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 6, 2026910

Individual skills in this repository

How it works

digital-oracle

When your agent uses it

Answer prediction questions using market trading data, not opinions. Use when the user asks probability questions about geopolitics, economics, markets, industries, or any topic where real money is being traded on the outcome. Examples: 'What's the probability of WW3?', 'Will there be a recession?', 'Is AI in a bubble?', 'When will the Russia-Ukraine war end?', 'Is it a good time to buy gold?', 'Will SPY drop 5% this month?', 'Is NVDA options premium overpriced?'. The skill reads prices from prediction markets, commodities, equities, options chains, derivatives, yield curves, and currencies, then cross-validates multiple signals to produce a structured probability report.

What it loads into context

Frontmatter

189 tokens

Always available to the agent

SKILL.md

5,672 tokens

When the skill is activated

Reference documents

13,247 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Methodology
  2. Workflow
  3. Notes

Scripts executed separately

  • digital_oracle/__init__.py
  • digital_oracle/cache.py
  • digital_oracle/concurrent.py
  • digital_oracle/http.py
  • digital_oracle/providers/__init__.py
  • digital_oracle/providers/_coerce.py
  • digital_oracle/providers/base.py
  • digital_oracle/providers/bis.py
  • digital_oracle/providers/cftc.py
  • digital_oracle/providers/cme_fedwatch.py
  • digital_oracle/providers/coingecko.py
  • digital_oracle/providers/deribit.py
  • digital_oracle/providers/eastmoney.py
  • digital_oracle/providers/edgar.py
  • digital_oracle/providers/fear_greed.py
  • digital_oracle/providers/kalshi.py
  • digital_oracle/providers/polymarket.py
  • digital_oracle/providers/prices.py
  • digital_oracle/providers/stooq.py
  • digital_oracle/providers/treasury.py
  • digital_oracle/providers/web.py
  • digital_oracle/providers/worldbank.py
  • digital_oracle/providers/yahoo.py
  • digital_oracle/providers/yfinance_provider.py
  • digital_oracle/proxy_pool.py
  • digital_oracle/snapshots.py
  • scripts/demo_deribit.py
  • scripts/demo_kalshi.py
  • scripts/demo_polymarket.py
  • scripts/demo_stooq.py
  • scripts/demo_treasury.py
  • scripts/regression_runner.py
  • tests/test_bis_provider.py
  • tests/test_cache_and_proxy.py
  • tests/test_cftc_provider.py
  • tests/test_cme_fedwatch_provider.py
  • tests/test_coerce.py
  • tests/test_coingecko_provider.py
  • tests/test_concurrent.py
  • tests/test_deribit_provider.py
  • tests/test_eastmoney_provider.py
  • tests/test_edgar_provider.py
  • tests/test_fear_greed_provider.py
  • tests/test_kalshi_provider.py
  • tests/test_polymarket_provider.py
  • tests/test_snapshots.py
  • tests/test_stooq_provider.py
  • tests/test_treasury_provider.py
  • tests/test_web_provider.py
  • tests/test_worldbank_provider.py
  • tests/test_yahoo_provider.py
  • tests/test_yfinance_provider.py

Files

  • .gitignoreasset55 bytes
  • ITERATION_PLAN.mddoc11,660 bytes
  • LICENSEasset1,072 bytes
  • README.en.mddoc5,248 bytes
  • README.mddoc4,875 bytes
  • SKILL.mdcore23,611 bytes
  • SKILL.mdcore23,611 bytes
  • SKILL.mdcore23,611 bytes
  • digital_oracle/__init__.pyruns4,575 bytes
  • digital_oracle/cache.pyruns2,831 bytes
  • digital_oracle/concurrent.pyruns4,627 bytes
  • digital_oracle/http.pyruns4,971 bytes
  • digital_oracle/providers/__init__.pyruns4,689 bytes
  • digital_oracle/providers/_coerce.pyruns1,160 bytes
  • digital_oracle/providers/base.pyruns644 bytes
  • digital_oracle/providers/bis.pyruns4,967 bytes
  • digital_oracle/providers/cftc.pyruns5,122 bytes
  • digital_oracle/providers/cme_fedwatch.pyruns4,321 bytes
  • digital_oracle/providers/coingecko.pyruns7,684 bytes
  • digital_oracle/providers/deribit.pyruns20,851 bytes
  • digital_oracle/providers/eastmoney.pyruns20,380 bytes
  • digital_oracle/providers/edgar.pyruns7,999 bytes
  • digital_oracle/providers/fear_greed.pyruns2,416 bytes
  • digital_oracle/providers/kalshi.pyruns12,392 bytes
  • digital_oracle/providers/polymarket.pyruns13,499 bytes
  • digital_oracle/providers/prices.pyruns927 bytes
  • digital_oracle/providers/stooq.pyruns2,450 bytes
  • digital_oracle/providers/treasury.pyruns7,888 bytes
  • digital_oracle/providers/web.pyruns13,634 bytes
  • digital_oracle/providers/worldbank.pyruns3,143 bytes
  • digital_oracle/providers/yahoo.pyruns6,323 bytes
  • digital_oracle/providers/yfinance_provider.pyruns16,475 bytes
  • digital_oracle/proxy_pool.pyruns3,546 bytes
  • digital_oracle/snapshots.pyruns5,753 bytes
  • references/providers.mddoc18,559 bytes
  • references/symbols.mddoc5,848 bytes
  • scripts/demo_deribit.pyruns4,899 bytes
  • scripts/demo_kalshi.pyruns2,775 bytes
  • scripts/demo_polymarket.pyruns2,992 bytes
  • scripts/demo_stooq.pyruns1,871 bytes
  • scripts/demo_treasury.pyruns2,985 bytes
  • scripts/regression_runner.pyruns14,962 bytes
  • tests/fixtures/deribit_book_summaries_futures.jsonasset2,380 bytes
  • tests/fixtures/deribit_book_summaries_options.jsonasset3,870 bytes
  • tests/fixtures/deribit_instruments_futures.jsonasset3,828 bytes
  • tests/fixtures/deribit_instruments_options.jsonasset5,717 bytes
  • tests/fixtures/deribit_order_book_btc_perpetual.jsonasset1,456 bytes
  • tests/fixtures/kalshi_event.jsonasset4,075 bytes
  • tests/fixtures/kalshi_market_detail.jsonasset1,390 bytes
  • tests/fixtures/kalshi_markets.jsonasset3,737 bytes
  • tests/fixtures/kalshi_orderbook.jsonasset972 bytes
  • tests/fixtures/polymarket_book.jsonasset752 bytes
  • tests/fixtures/polymarket_events.jsonasset2,361 bytes
  • tests/fixtures/stooq_spy.csvasset227 bytes
  • tests/fixtures/stooq_xauusd.csvasset154 bytes
  • tests/fixtures/treasury_exchange_rates.jsonasset838 bytes
  • tests/fixtures/treasury_nominal_curve.csvasset354 bytes
  • tests/fixtures/treasury_real_curve.csvasset115 bytes
  • tests/test_bis_provider.pyruns5,555 bytes
  • tests/test_cache_and_proxy.pyruns5,861 bytes
  • tests/test_cftc_provider.pyruns11,015 bytes
  • tests/test_cme_fedwatch_provider.pyruns4,457 bytes
  • tests/test_coerce.pyruns4,025 bytes
  • tests/test_coingecko_provider.pyruns9,331 bytes
  • tests/test_concurrent.pyruns5,736 bytes
  • tests/test_deribit_provider.pyruns6,346 bytes
  • tests/test_eastmoney_provider.pyruns14,890 bytes
  • tests/test_edgar_provider.pyruns11,079 bytes
  • tests/test_fear_greed_provider.pyruns4,246 bytes
  • tests/test_kalshi_provider.pyruns4,374 bytes
  • tests/test_polymarket_provider.pyruns3,067 bytes
  • tests/test_snapshots.pyruns4,109 bytes
  • tests/test_stooq_provider.pyruns1,959 bytes
  • tests/test_treasury_provider.pyruns3,958 bytes
  • tests/test_web_provider.pyruns7,541 bytes
  • tests/test_worldbank_provider.pyruns7,698 bytes
  • tests/test_yahoo_provider.pyruns1,404 bytes
  • tests/test_yfinance_provider.pyruns22,944 bytes
Read SKILL.md

# digital-oracle

> Markets are efficient. Price contains all public information. Reading price = reading market consensus.

## Methodology

**Answer questions using only market trading data — no news, opinions, or statistical reports as causal evidence.** If something is true, some market has already priced it in.

Five iron rules:

1. **Trading data only** — prices, volume, open interest, spreads, premiums. Never cite analyst opinions.
2. **Explicit reasoning from price to judgment** — explain clearly "why this price answers this question."
3. **Multi-signal cross-validation** — never conclude from a single signal. At least 3 independent dimensions.
4. **Label the time horizon of each signal** — options price 3 months, equipment orders price 3 years — don't mix them in the same vote.
View the complete source on GitHub

Skills included

  • digital-oracle

Repository facts

License
MIT
Created
Mar 11, 2026
Last pushed
Jul 26, 2026
Forks
180
Open issues
2
Project activity
Slowing

Rank over the last 12 weeks

Now #957 · best #646 · down 202 in 30 days

  1. #945 on Oct 31
  2. #946 on Nov 1
  3. #954 on Nov 2
  4. #958 on Nov 3
  5. #959 on Nov 4
  6. #957 since Nov 5
65 earlier periods
  1. #649 on Aug 2
  2. #647 on Aug 7
  3. #646 on Aug 8
  4. #684 on Aug 11
  5. #677 on Aug 12
  6. #673 on Aug 13
  7. #668 on Aug 14
  8. #646 on Aug 15
  9. #662 on Aug 16
  10. #675 on Aug 17
  11. #692 on Aug 18
  12. #672 on Aug 19
  13. #648 on Aug 22
  14. #675 on Aug 23
  15. #698 on Aug 24
  16. #704 on Aug 25
  17. #685 on Aug 26
  18. #720 on Aug 28
  19. #708 on Aug 31
  20. #708 on Sep 2
  21. #713 on Sep 3
  22. #691 on Sep 4
  23. #703 on Sep 6
  24. #739 on Sep 8
  25. #725 on Sep 9
  26. #734 on Sep 10
  27. #714 on Sep 11
  28. #711 on Sep 12
  29. #735 on Sep 15
  30. #739 on Sep 16
  31. #746 on Sep 17
  32. #729 on Sep 18
  33. #701 on Sep 19
  34. #714 on Sep 20
  35. #734 on Sep 21
  36. #753 on Sep 22
  37. #748 on Sep 23
  38. #717 on Sep 24
  39. #698 on Sep 25
  40. #697 on Sep 26
  41. #743 on Sep 28
  42. #773 on Sep 29
  43. #755 on Sep 30
  44. #723 on Oct 2
  45. #704 on Oct 3
  46. #733 on Oct 4
  47. #740 on Oct 5
  48. #747 on Oct 6
  49. #755 on Oct 7
  50. #792 on Oct 8
  51. #757 on Oct 9
  52. #746 on Oct 10
  53. #747 on Oct 11
  54. #762 on Oct 12
  55. #765 on Oct 13
  56. #776 on Oct 14
  57. #771 on Oct 15
  58. #775 on Oct 16
  59. #741 on Oct 18
  60. #785 on Oct 19
  61. #759 on Oct 24
  62. #919 on Oct 25
  63. #935 on Oct 28
  64. #941 on Oct 29
  65. #942 on Oct 30

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 2 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 191 signals by file

ITERATION_PLAN.md

  • Network accessline 65
    - Base URL: `https://api.stlouisfed.org/fred`
  • Network accessline 66
    - 认证: 需要免费 API key(注册 https://fredaccount.stlouisfed.org/apikeys )
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 136
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]
  • Access to secretsline 141
    [Credential-related source omitted]
  • Network accessline 161
    [Credential-related source omitted]
  • Access to secretsline 161
    [Credential-related source omitted]
  • Access to secretsline 204
    [Credential-related source omitted]
  • Network accessline 226
    - URL: `https://production.dataviz.cnn.io/index/fearandgreed/graphdata`
  • Network accessline 252
    注意:CNN 的 API 可能返回嵌套结构,需要从 `fear_and_greed` 字段提取 `score` 和 `rating`,从 `fear_and_greed_historical` 中提取历史对比值。请先用 `web.fetch_page` 或 curl 测试实际返回结构再实现。
  • Network accessline 284
    CME FedWatch 的网页底层会请求一个 JSON endpoint: - URL: `https://www.cmegroup.com/services/fed-funds-target/fed-funds-target.json` (需要实际测试确认,URL 可能有变化)
  • Network accessline 285
    - URL: `https://www.cmegroup.com/services/fed-funds-target/fed-funds-target.json` (需要实际测试确认,URL 可能有变化)

README.en.md

  • Network accessline 66
    > Install this open-source project and read SKILL.md as your working instructions: https://github.com/komako-workshop/digital-oracle
  • Network accessline 72
    - [uv](https://docs.astral.sh/uv/) — Python package manager, used to run skill scripts at runtime

README.md

  • Network accessline 66
    > 安装这个开源项目并读取 SKILL.md 作为你的工作指令:https://github.com/komako-workshop/digital-oracle
  • Network accessline 72
    - [uv](https://docs.astral.sh/uv/) — Python 包管理器,skill 运行时用它执行 Python 脚本

SKILL.md

  • Network accessline 342
    - Put/Call ratio > 1.5 is typically bearish, but as a contrarian indicator, extreme values (> 3) may signal a bottom - Max pain is the strike price maximizing market maker profit — actual expiration price often converges toward max pain - K
  • Network accessline 343
    - Max pain is the strike price maximizing market maker profit — actual expiration price often converges toward max pain - Kalshi does NOT support keyword search — use `series_ticker` or `event_ticker` to filter markets. Find tickers by brow
  • Network accessline 344
    - Kalshi does NOT support keyword search — use `series_ticker` or `event_ticker` to filter markets. Find tickers by browsing [kalshi.com](https://kalshi.com) or listing markets without filters first. Common series: `KXFED` (Fed rates), `KXI

digital_oracle/__init__.py

  • Executable scriptline 1
    Executable file

digital_oracle/cache.py

  • Executable scriptline 1
    Executable file

digital_oracle/concurrent.py

  • Executable scriptline 1
    Executable file

digital_oracle/http.py

  • Executable scriptline 1
    Executable file

digital_oracle/providers/__init__.py

  • Executable scriptline 1
    Executable file

digital_oracle/providers/_coerce.py

  • Executable scriptline 1
    Executable file

digital_oracle/providers/base.py

  • Executable scriptline 1
    Executable file

digital_oracle/providers/bis.py

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    BIS_BASE_URL = "https://stats.bis.org/api/v1"

digital_oracle/providers/cftc.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    CFTC_SODA_URL = "https://publicreporting.cftc.gov/resource/72hh-3qpy.json"

digital_oracle/providers/cme_fedwatch.py

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    _URL = "https://www.cmegroup.com/services/fed-funds-target/fed-funds-target.json"

digital_oracle/providers/coingecko.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    COINGECKO_BASE = "https://api.coingecko.com/api/v3"

digital_oracle/providers/deribit.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    DERIBIT_API_URL = "https://www.deribit.com/api/v2/public"

digital_oracle/providers/eastmoney.py

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    LIVE_HOSTS = ("https://push2.eastmoney.com", "https://push2delay.eastmoney.com")
  • Network accessline 31
    HISTORY_HOSTS = ("https://push2his.eastmoney.com", "https://push2delay.eastmoney.com")
  • Network accessline 37
    TENCENT_KLINE_URL = "https://web.ifzq.gtimg.cn/appstock/app/fqkline/get"
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 48
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Network accessline 60
    "(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"     ),     "Referer": "https://quote.eastmoney.com/",
  • Network accessline 61
    ),     "Referer": "https://quote.eastmoney.com/", }
  • Network accessline 62
    "Referer": "https://quote.eastmoney.com/",

digital_oracle/providers/edgar.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    EDGAR_SUBMISSIONS_URL = "https://data.sec.gov/submissions"
  • Network accessline 12
    EDGAR_TICKERS_URL = "https://www.sec.gov/files/company_tickers.json"
  • Network accessline 13
    EDGAR_SEARCH_URL = "https://efts.sec.gov/LATEST/search-index"
  • Network accessline 81
    # SEC EDGAR requires User-Agent with contact email to avoid 403.             # See: https://www.sec.gov/os/accessing-edgar-data
  • Network accessline 82
    # See: https://www.sec.gov/os/accessing-edgar-data
  • Access to secretsline 86
    [Credential-related source omitted]

digital_oracle/providers/fear_greed.py

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    _URL = "https://production.dataviz.cnn.io/index/fearandgreed/graphdata"
  • Network accessline 36
    "Accept": "application/json",     "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",     "Referer": "https://edition.cnn.com/",
  • Network accessline 37
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",     "Referer": "https://edition.cnn.com/", }
  • Network accessline 38
    "Referer": "https://edition.cnn.com/",

digital_oracle/providers/kalshi.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    KALSHI_API_URL = "https://api.elections.kalshi.com/trade-api/v2"

digital_oracle/providers/polymarket.py

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    GAMMA_BASE_URL = "https://gamma-api.polymarket.com"
  • Network accessline 13
    CLOB_BASE_URL = "https://clob.polymarket.com"

digital_oracle/providers/prices.py

  • Executable scriptline 1
    Executable file

digital_oracle/providers/stooq.py

  • Executable scriptline 1
    Executable file

digital_oracle/providers/treasury.py

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    TREASURY_RATES_CSV_URL = (     "https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv"
  • Network accessline 15
    "https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv"
  • Network accessline 17
    FISCALDATA_BASE_URL = "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v1/accounting/od"

digital_oracle/providers/web.py

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    def fetch(self, url: str, *, headers: dict[str, str] | None = None) -> str:
  • Network accessline 56
    def fetch(self, url: str, *, headers: dict[str, str] | None = None) -> str:
  • Network accessline 272
    DDG_HTML_URL = "https://html.duckduckgo.com/html/"
  • Network accessline 391
    html = self.http_client.fetch(query.url)

digital_oracle/providers/worldbank.py

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    WORLDBANK_BASE = "https://api.worldbank.org/v2"

digital_oracle/providers/yahoo.py

  • Executable scriptline 1
    Executable file

digital_oracle/providers/yfinance_provider.py

  • Executable scriptline 1
    Executable file

digital_oracle/proxy_pool.py

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    Configure with ``EASTMONEY_PROXIES`` / ``DIGITAL_ORACLE_PROXIES``, comma separated, e.g. ``http://user:pass@host:8080,http://host2:8080``. Direct
  • Network accessline 10
    separated, e.g. ``http://user:pass@host:8080,http://host2:8080``. Direct
  • Access to secretsline 32
    [Credential-related source omitted]

digital_oracle/snapshots.py

  • Executable scriptline 1
    Executable file

references/providers.md

  • Network accessline 178
    # 抓取页面正文 page = web.fetch_page("https://example.com/article")
  • Network accessline 179
    page = web.fetch_page("https://example.com/article")
  • Network accessline 460
    `EASTMONEY_HOST_COOLDOWN` 覆盖。 - **代理轮换**:设 `EASTMONEY_PROXIES`(逗号分隔,如   `http://user:pass@host:8080,http://host2:8080`)即可把出口分散到多个地址,
  • Network accessline 461
    - **代理轮换**:设 `EASTMONEY_PROXIES`(逗号分隔,如   `http://user:pass@host:8080,http://host2:8080`)即可把出口分散到多个地址,   失败的代理冷却 120s,直连始终作为最后兜底。**默认为空**——公开免费代理既不可靠,
  • Network accessline 462
    `http://user:pass@host:8080,http://host2:8080`)即可把出口分散到多个地址,

scripts/demo_deribit.py

  • Executable scriptline 1
    Executable file

scripts/demo_kalshi.py

  • Executable scriptline 1
    Executable file

scripts/demo_polymarket.py

  • Executable scriptline 1
    Executable file

scripts/demo_stooq.py

  • Executable scriptline 1
    Executable file

scripts/demo_treasury.py

  • Executable scriptline 1
    Executable file

scripts/regression_runner.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 43
    [Credential-related source omitted]

tests/test_bis_provider.py

  • Executable scriptline 1
    Executable file

tests/test_cache_and_proxy.py

  • Executable scriptline 1
    Executable file
  • Network accessline 117
    def test_direct_is_always_the_last_resort(self) -> None:         pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 118
    pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 121
    def test_rotates_starting_point_across_calls(self) -> None:         pool = ProxyPool(proxies=("http://a:1", "http://b:2", "http://c:3"))
  • Network accessline 122
    pool = ProxyPool(proxies=("http://a:1", "http://b:2", "http://c:3"))
  • Network accessline 124
    self.assertEqual(sorted(firsts), ["http://a:1", "http://b:2", "http://c:3"])
  • Network accessline 126
    def test_failed_proxy_is_demoted_below_healthy_ones(self) -> None:         pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 127
    pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 128
    pool.mark_failure("http://a:1")
  • Network accessline 130
    self.assertEqual(order[-1], "http://a:1")
  • Network accessline 132
    def test_success_clears_the_cooldown(self) -> None:         pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 133
    pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 134
    pool.mark_failure("http://a:1")
  • Network accessline 135
    pool.mark_success("http://a:1")
  • Network accessline 138
    def test_all_cooling_still_offers_them_rather_than_only_direct(self) -> None:         pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 139
    pool = ProxyPool(proxies=("http://a:1", "http://b:2"))
  • Network accessline 140
    pool.mark_failure("http://a:1")
  • Network accessline 141
    pool.mark_failure("http://b:2")
  • Network accessline 147
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]
  • Network accessline 148
    try:             self.assertEqual(                 proxies_from_env("_DO_TEST_PROXIES"), ("http://a:1", "http://b:2")
  • Network accessline 149
    self.assertEqual(                 proxies_from_env("_DO_TEST_PROXIES"), ("http://a:1", "http://b:2")             )
  • Network accessline 150
    proxies_from_env("_DO_TEST_PROXIES"), ("http://a:1", "http://b:2")
  • Access to secretsline 153
    [Credential-related source omitted]

tests/test_cftc_provider.py

  • Executable scriptline 1
    Executable file

tests/test_cme_fedwatch_provider.py

  • Executable scriptline 1
    Executable file

tests/test_coerce.py

  • Executable scriptline 1
    Executable file

tests/test_coingecko_provider.py

  • Executable scriptline 1
    Executable file

tests/test_concurrent.py

  • Executable scriptline 1
    Executable file

tests/test_deribit_provider.py

  • Executable scriptline 1
    Executable file

tests/test_eastmoney_provider.py

  • Executable scriptline 1
    Executable file

tests/test_edgar_provider.py

  • Executable scriptline 1
    Executable file

tests/test_fear_greed_provider.py

  • Executable scriptline 1
    Executable file

tests/test_kalshi_provider.py

  • Executable scriptline 1
    Executable file

tests/test_polymarket_provider.py

  • Executable scriptline 1
    Executable file

tests/test_snapshots.py

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    response = client.get_json(                 "https://api.example.com/items",
  • Network accessline 47
    "https://api.example.com/items",
  • Network accessline 52
    replay = ReplayHttpClient(tmpdir)             replayed = replay.get_json(                 "https://api.example.com/items",
  • Network accessline 53
    replayed = replay.get_json(                 "https://api.example.com/items",                 params={"limit": 3, "active": True},
  • Network accessline 54
    "https://api.example.com/items",
  • Network accessline 61
    envelope = json.loads(snapshot_files[0].read_text())             self.assertEqual(envelope["kind"], "json")             self.assertEqual(envelope["request"]["url"], "https://api.example.com/items")
  • Network accessline 62
    self.assertEqual(envelope["kind"], "json")             self.assertEqual(envelope["request"]["url"], "https://api.example.com/items")             self.assertEqual(envelope["request"]["params"]["active"], True)
  • Network accessline 63
    self.assertEqual(envelope["request"]["url"], "https://api.example.com/items")
  • Network accessline 74
    response = client.get_text(                 "https://api.example.com/history.csv",
  • Network accessline 75
    "https://api.example.com/history.csv",
  • Network accessline 80
    replay = ReplayHttpClient(tmpdir)             replayed = replay.get_text(                 "https://api.example.com/history.csv",
  • Network accessline 81
    replayed = replay.get_text(                 "https://api.example.com/history.csv",                 params={"symbol": "spy.us"},
  • Network accessline 82
    "https://api.example.com/history.csv",
  • Network accessline 93
    )             client.get_json(                 "https://api.example.com/quote",
  • Network accessline 94
    client.get_json(                 "https://api.example.com/quote",                 params={"symbol": "BTC", "depth": 5},
  • Network accessline 95
    "https://api.example.com/quote",
  • Network accessline 100
    self.assertEqual(                 replay.get_json(                     "https://api.example.com/quote",
  • Network accessline 101
    replay.get_json(                     "https://api.example.com/quote",                     params={"depth": 5, "symbol": "BTC"},
  • Network accessline 102
    "https://api.example.com/quote",
  • Network accessline 110
    replay = ReplayHttpClient(tmpdir)             with self.assertRaises(SnapshotMissError):                 replay.get_json("https://api.example.com/missing", params={"id": 1})
  • Network accessline 112
    replay.get_json("https://api.example.com/missing", params={"id": 1})

tests/test_stooq_provider.py

  • Executable scriptline 1
    Executable file

tests/test_treasury_provider.py

  • Executable scriptline 1
    Executable file

tests/test_web_provider.py

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    def fetch(self, url: str, *, headers: dict[str, str] | None = None) -> str:
  • Network accessline 70
    <div class="links_main links_deep result__body">     <h2 class="result__title">       <a rel="nofollow" class="result__a" href="https://example.com/page1">
  • Network accessline 71
    <h2 class="result__title">       <a rel="nofollow" class="result__a" href="https://example.com/page1">         IMF GDP Forecast 2026
  • Network accessline 72
    <a rel="nofollow" class="result__a" href="https://example.com/page1">
  • Network accessline 74
    </a>     </h2>     <a class="result__snippet" href="https://example.com/page1">
  • Network accessline 75
    </h2>     <a class="result__snippet" href="https://example.com/page1">       The IMF projects global GDP growth of 3.2% in 2026.
  • Network accessline 76
    <a class="result__snippet" href="https://example.com/page1">
  • Network accessline 82
    <div class="links_main links_deep result__body">     <h2 class="result__title">       <a rel="nofollow" class="result__a" href="https://example.com/page2">
  • Network accessline 83
    <h2 class="result__title">       <a rel="nofollow" class="result__a" href="https://example.com/page2">         World Economic Outlook
  • Network accessline 84
    <a rel="nofollow" class="result__a" href="https://example.com/page2">
  • Network accessline 86
    </a>     </h2>     <a class="result__snippet" href="https://example.com/page2">
  • Network accessline 87
    </h2>     <a class="result__snippet" href="https://example.com/page2">       Latest projections from the World Economic Outlook report.
  • Network accessline 88
    <a class="result__snippet" href="https://example.com/page2">
  • Network accessline 101
    self.assertIn("IMF GDP Forecast", results[0]["title"])         self.assertEqual(results[0]["url"], "https://example.com/page1")
  • Network accessline 102
    self.assertEqual(results[0]["url"], "https://example.com/page1")
  • Network accessline 136
    result = provider.fetch_page("https://example.com")
  • Network accessline 138
    self.assertEqual(result.url, "https://example.com")
  • Network accessline 151
    result = provider.fetch_page(WebPageQuery(url="https://example.com", max_chars=100))
  • Network accessline 160
    result = provider.fetch_page("https://example.com")
  • Network accessline 175
    WebSearchSnippet(                     title="IMF Forecast",                     url="https://imf.org/weo",
  • Network accessline 176
    title="IMF Forecast",                     url="https://imf.org/weo",                     snippet="GDP growth 3.2%",
  • Network accessline 177
    url="https://imf.org/weo",
  • Network accessline 180
    WebSearchSnippet(                     title="World Bank Data",                     url="https://worldbank.org",
  • Network accessline 181
    title="World Bank Data",                     url="https://worldbank.org",                     snippet="",
  • Network accessline 182
    url="https://worldbank.org",
  • Network accessline 189
    self.assertIn("IMF GDP", text)         self.assertIn("[1] IMF Forecast", text)         self.assertIn("https://imf.org/weo", text)
  • Network accessline 190
    self.assertIn("[1] IMF Forecast", text)         self.assertIn("https://imf.org/weo", text)         self.assertIn("3.2%", text)
  • Network accessline 191
    self.assertIn("https://imf.org/weo", text)

tests/test_worldbank_provider.py

  • Executable scriptline 1
    Executable file

tests/test_yahoo_provider.py

  • Executable scriptline 1
    Executable file

tests/test_yfinance_provider.py

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

No combined signals at this commit.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

komako-workshop/digital-oracle: #957 on hotskills, 910 stars

[![komako-workshop/digital-oracle on hotskills](https://hotskills.dev/badge/komako-workshop-digital-oracle.svg)](https://hotskills.dev/skill/komako-workshop-digital-oracle/)