factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Pipelines, fields, LNG terminals and chokepoints worldwide, with live ship traffic, sourced daily updates, pump prices and what-if scenarios. Free and ad-free.
DataJavaScript · CSSGitHub @courtney-pivotwaveOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Geographic map of oil and gas infrastructure.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.