尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Where the latest global headlines push the world's biggest industries and economies: tailwind or headwind, how hard, and why. Refreshed daily for free.
• 11 industries: energy, banks, tech and chips, healthcare, autos, retail and consumer, industrials, materials, agriculture and food, real estate, transport.
• 7 economies: United States, China, euro area, Japan, India, United Kingdom, Gulf states.
• Stories are written without company names.
The site refreshes once a day for free. There's no API key, no AI credit and nothing to switch on:查看完整 README ↗https://market-pressure-map.vercel.app/
Where the last 24 hours of news push Indian markets: tailwind or headwind, how hard, and why. Indian news comes first; foreign news is included only when it reaches Indian markets (oil and gas, US rates and the dollar, trade, metal and food prices, foreign investor flows). Refreshed daily for free.
economies; positive = good for Indian markets): equities (Nifty and Sensex), rupee, bond market (G-Secs), inflation outlook, fiscal and trade balance, foreign investor flows, growth outlook.localStorage); "Show everything" switches back to the full view./#sector=banks, /#sector=it, …) that opens its panel: how the sector is exposed, today's net score and 24-hour change, the 7-day trend, the stories driving it and related signals. /sector/<slug> is a small share page whose title and description carry today's reading, so links preview well in chat apps, before forwarding to the site. Each sector has an RSS feed at /feeds/<slug>.xml, plus /feeds/all.xml. Slugs: oil-gas, banks, it, pharma, autos, fmcg, capital-goods, metals, agri, real-estate, transport. Feeds and share pages are regenerated with every scan (scripts/sector-outputs.mjs, files under public/data/feeds/ and public/data/sector/, routed by vercel.json). Absolute links use SITE_URL (default https://market-pressure-map.vercel.app); if the site lives elsewhere, set a repository variable SITE_URL.The site refreshes once a day for free. There's no API key, no AI credit and nothing to switch on:
.github/workflows/refresh.yml, "Daily refresh") runs at 05:17 UTC. GitHub sometimes delays or drops scheduled runs, so the job is also scheduled at 08:47, 13:17 and 18:47 UTC; those backup runs stop straight away if the feed and scan were refreshed in the last 20 hours. (The check uses age, not the calendar date, so a delayed run just after midnight doesn't leave the feed a day old by morning.)
scripts/osint.mjs collects the open-source intelligence feed (public/data/osint.json).scripts/rule-scan.mjs reads about fifteen India-focused Google News searches (Indian edition) plus the intelligence feed, matches each headline to an event rule, groups headlines about the same event into stories and scores them. It writes scan.json and history.json. Example rules are "oil prices rise", "central bank cuts rates", "new tariffs", "attacks on shipping lanes" and "weaker yen". Each rule carries a reviewed set of industry and economy exposures, and confidence grows with the number of separate reports. Single-firm news, explainers and questions are skipped.public/data/memory.json, the last 14 days of stories, written by every scan). Each new story is marked "New in the last 24 hours", "Ongoing" (with how many of the previous 7 days it appeared and since when) or "Turn" (earlier readings pointed the other way). Ongoing stories rank higher, and a story seen on two or more earlier days goes from low to medium confidence. A turn lowers high confidence to medium.Running it by hand: Actions → Daily refresh → Run workflow. Tick publish_rule_scan to replace today's scan with the keyword-rule scan even if the Claude routine wrote it, or test_rule_scan to preview the keyword-rule stories in the run summary without committing.
A Claude Code routine named "Market Pressure Map daily scan" can run at 05:42 UTC. It uses your Claude plan's usage, not API credit. It searches the last 24 hours of news, reads the previous 7 days of stories from the story memory (--list-signals prints them) to judge whether each development is new, ongoing, escalating or reversing, writes 8–16 stories in its own words and scores them by judgement. It also assesses the top 30 intelligence signals. When it has written a scan in the last 20 hours, the keyword-rule step leaves that scan alone, and history keeps one point per day. To rely on the free rules only, pause the routine in claude.ai under Routines; nothing else changes. The routine writes a draft and runs node scripts/apply-scan.mjs draft.json, which checks the draft and writes the site data.
scripts/refresh.mjs does the same scoring through the Anthropic API from inside GitHub Actions, using RSS feeds. It's off by default. To use it, add a repository secret ANTHROPIC_API_KEY (from a key created inside a workspace, with credit on the account) and a repository variable SCAN_WITH_API = true. You can then pause the Claude routine.
apply-scan.mjs{
"items": [{ "id": "hormuz", "date": "2026-10-02", "theme": "Energy & geopolitics", "headline": "…", "summary": "…", "rationale": "…",
"horizon": "weeks", "confidence": "high", "industries": [{ "id": "energy", "score": 2, "why": "…" }],
"economies": [{ "id": "rupee", "score": -2, "why": "…" }], "sources": ["https://…"] }],
"signals": [{ "id": "<signal id from --list-signals>", "headline": "…", "risk": "high", "note": "…", "industries": [], "economies": [] }]
}
node scripts/apply-scan.mjs --list-signals prints the signals to assess and the allowed ids and themes.
scripts/osint.mjs runs in the daily job and needs no API key. It collects geopolitical and economic signals from open sources:
Signals are kept only when they reach Indian markets: anything about India, oil and gas routes and suppliers (the Gulf, Russia, the Red Sea and Hormuz), India's neighbours, energy, shipping, sanctions and food supply, and US monetary policy.
Each signal is tagged by rules with a category, the places and sectors it exposes, and a severity (watch, elevated or high). Severity rises with intensity words, disaster alert level, earthquake magnitude and how many separate sources report the same thing. Near-duplicate reports are merged. Headlines that name companies are dropped. The keyword-rule scan gives signals that match an event rule a short note and signed scores. When the optional Claude routine runs, it assesses the top 30 signals with a neutral headline, a market-impact risk level, a note and scores, and those assessments take precedence. Assessed signals show as "Assessed". The feed is written to public/data/osint.json and is published even when the scoring step doesn't run.
Select any sector or gauge (in the bars, the headline verdicts, the exposure grid or a signal's chips) to open its details: net score and 24-hour change, a 7-day trend line, where the pressure lands across the other dimension, the stories driving it, related intelligence signals, and a shortcut to ask the desk about it. The industry × economy grid opens the stories linking any pair. Details have shareable links such as #ind-energy, #eco-india or #pair-energy-india.
The page totals the scores, counting high-confidence calls at 1.0, medium at 0.7 and low at 0.4. It also shows the change over the last 24 hours.
The question box answers live, so it needs Anthropic API credit. It stays hidden unless it's switched on. To switch it on, add these in Vercel → Settings → Environment Variables (Production), then redeploy:
ANTHROPIC_API_KEY: a key created inside a workspace, on an account with credit.ASK_ENABLED = true.Optional variables: ASK_MODEL (default claude-opus-5-5) and ASK_RATE_LIMIT (questions per visitor per 10 minutes, default 8). The rate limit is best-effort because serverless instances don't share memory. Set a monthly spend limit, since anyone who can open the site can ask questions.
The daily refresh runs on GitHub's free Actions minutes and costs nothing. The optional Claude routine counts toward your Claude plan's usage limits. In paid API mode, each scan costs roughly $0.10–0.25 on the default model, and each question-box question about $0.02–0.06.
npm ci
node scripts/osint.mjs # intelligence feed, no API key
node scripts/rule-scan.mjs # free keyword-rule scan, no API key
DRY_RUN=1 npm run refresh # fetch headlines only, no API call
ANTHROPIC_API_KEY=... npm run refresh # full scan, writes public/data/
npm run serve # view the site locally
Scores are a structured judgement about direction and size, not price forecasts or investment advice.