尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Geographic map of oil and gas infrastructure.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Live: https://strategicenergymap.org · About & methods: https://strategicenergymap.org/about.html
A free, ad-free map of the world's oil and gas infrastructure — pipelines, fields, refineries, LNG terminals, ports, shipping routes and chokepoints — and what is happening to them now. A scheduled research agent keeps it current, with a source behind every claim.檢視完整 README ↗Live: https://strategicenergymap.org · About & methods: https://strategicenergymap.org/about.html
A free, ad-free map of the world's oil and gas infrastructure — pipelines, fields, refineries, LNG terminals, ports, shipping routes and chokepoints — and what is happening to them now. A scheduled research agent keeps it current, with a source behind every claim.
?embed=1 (and optionally ®ion=europe|mideast|asia|americas) for a map-only view. The About page has a ready-made iframe snippet with a copy button (strategicenergymap.org/embed, which redirects to about.html#embed).No framework and no dependencies. The map is a static page that renders JSON; a small build script (scripts/build.mjs) also generates ~150 crawlable answer pages from the same data: one per chokepoint, major facility and pump-price series, plus hubs, an events archive, an RSS feed, sitemap.xml and robots.txt.
index.html, styles.css, app.js the map (Leaflet 1.9.4); renders everything from data/
about.html about & methods page, changelog
data/infrastructure.json facilities, pipelines, routes, chokepoints (stable kebab-case ids)
data/status.json facilities not operating normally
data/events.json dated, sourced event feed + situation summary
data/market.json benchmark prices
data/fuel.json pump prices (written by scripts/update_fuel.py)
data/scenarios.json what-if baselines, bypass capacity, exposure
data/changelog.json public changelog
scripts/update_fuel.py pulls EIA, EU Weekly Oil Bulletin, UK DESNZ and ECB FX (Python stdlib only)
scripts/validate.mjs schema, reference and sourcing checks for data/
agent/UPDATE_AGENT.md instructions for the daily update agent
agent/EDITOR.md instructions for the weekly editor agent
agent/BRIEF.md this week's approved brief (written by the editor, merged by a human)
scripts/metrics.mjs weekly growth metrics → metrics/<week-ending>.json
agent/SCHEMA.md data contract
Hosted on Vercel from main. Visits are counted with Vercel Web Analytics (no cookies).
A Claude Code cloud routine runs every morning and follows agent/UPDATE_AGENT.md. It:
scripts/validate.mjs, thenmain and opens a pull request for anything needing human review: new facilities, critical events, chokepoint status changes, corrections.Sourcing rule. Governments that are parties to the conflicts on the map (the US, Israel, Iran, the Houthis, Russia and Ukraine) are treated alike. Their statements count as fact only when they can be independently verified; otherwise they are attributed and marked unverified. Ship transits and flows through contested waters come only from independent trackers. If there's no independent figure, the map shows none. The validator enforces part of this automatically.
The agent also drafts short posts in data/social.json, checked by the validator (length, sourcing, no unverified
claims). A GitHub Action (.github/workflows/social.yml) posts them to X and Bluesky with repository secrets and
records what went out in data/social-log.json. Drafts tied to review items only post once a human merges them.
Set "enabled": false to pause everything. Weekly chart images are rendered from dist/social/*.html.
Every Monday a GitHub Action (.github/workflows/metrics.yml) collects last week's numbers into
metrics/<week-ending>.json: search queries and clicks (Google Search Console, Bing), followers and engagement per post
(Bluesky, X), pages, daily runs and pull requests waiting. Its read-only keys are repository secrets. Vercel visits are
copied by hand into metrics/vercel.json, because Vercel's analytics API isn't available for this project.
A second cloud routine then follows agent/EDITOR.md: it reads the metrics and the week's activity
and opens a "Brief: week of …" pull request with what worked, one to three priorities, at most two build assignments,
notes for the daily agent and the experiments under way. Nothing in it takes effect until a human merges it. The daily
agent then follows the brief's notes within its own rules.
fetch() doesn't work from file://, so serve the folder:
node scripts/build.mjs && python3 -m http.server 8765 -d dist
Then open http://localhost:8765. After editing anything in data/:
node scripts/validate.mjs
Refresh pump prices:
python3 scripts/update_fuel.py
og.png is rendered from tools/og-card.html (copied into dist/tools/ by the local build) with headless Chrome while the local server is serving dist/:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --user-data-dir="$(mktemp -d)" --hide-scrollbars --window-size=1200,630 --virtual-time-budget=12000 --screenshot="$PWD/og.png" http://localhost:8765/tools/og-card.html
Basemap © Esri, HERE, Garmin, © OpenStreetMap contributors. Ship transits: IMF PortWatch. Pump prices: US EIA, European Commission Weekly Oil Bulletin, UK DESNZ, ECB reference rates. Hormuz baselines: IEA (Kpler data). Every event and status links its own sources.
Found an error? Open an issue.
Built by Courtney Wilson.