尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證The world is full of connections. Some you know, many you don't. NavGCC maps the people, companies and institutions shaping the Gulf, finds your place among them, and shows the paths to the people you want to meet.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Full-scale, no-cap network map of Abu Dhabi's key industries, institutions and key people, organized in four layers — now with an automation pipeline for news and your LinkedIn network.
| File | What it is |
|---|---|
abu_dhabi_power_hub.html | The map. Open in any browser (keep it in this folder — it loads the three .js files below). |
network_data.js | Source of truth. All sectors, institutions, people, ownership, family ties, aliases. Edit → refresh browser. No build step. |
news_data.js | Auto-generated news signals (tools/match_news.py). |
my_network.js | Auto-generated LinkedIn overlay (tools/import_linkedin.py). Private — keep local. |
news_inbox/ | Drop news articles here as .md/.txt (two [SAMPLE] items included — delete them). |
tools/ | Automation scripts (Python 3, stdlib only). |
data_dictionary.md | Data model and operating rules. |
abu_dhabi_power_hub_v1_plotly_backup.html | Old V1 Plotly map, kept for reference. |
| Layer | Contents |
|---|---|
| L0 · Ruling Core | Al Nahyan ruling family, Presidential Court, Executive Council, SCFEA, UAE Cabinet |
| L1 · Sovereign Capital & State | ADIA, Mubadala, ADQ, IHC/Royal Group, department chairs, ministers, super-connectors |
| L2 · Operators & Sector Leaders | Operating companies and their CEOs across every sector |
| L3 · Private & International Partners | Energy majors (TotalEnergies, bp, Shell, Exxon…), Big Tech (Microsoft, OpenAI, NVIDIA), global finance (BlackRock, Goldman), consulting/audit/law gatekeepers, local private groups (Waha, Trojan, Rotana…) |
Local-people policy: global HQ executives (Sam Altman, Jensen Huang, Larry Fink, the
energy-major CEOs, …) are deliberately excluded — the people layer is local. L3 companies
are anchor nodes; the people who serve them in the UAE surface through the LinkedIn overlay,
and get promoted into PEOPLE once their local role (country manager, UAE managing partner,
Gulf CEO) is verified.
Sectors = GICS 11 + government-side, identical across every region:
Energy 能源 · Materials 原材料 · Industrials 工业 (incl. transport, defense companies,
professional services) · Consumer Discretionary 可选消费 · Consumer Staples 必选消费 ·
Health Care 医疗保健 · Financials 金融 · Information Technology 信息技术 ·
Communication Services 通信服务 (telecom + media + entertainment/sport) · Utilities 公用事业 ·
Real Estate 房地产 — plus Government & Political, Sovereign Capital, Education & Research,
Family Conglomerates. Every region covers all 11 GICS sectors (checked by
tools/gics_migrate.py conventions; keys: energy, materials, industry, consumer_disc, consumer_stap, health, finance, tech, comm, utilities, realestate, gov, sovereign, education, conglomerate).
3 edge types (roles, ownership/control, family) · power score drives node size. Current scale: ~100 people · ~143 institutions · ~298 edges. No cap.
.github/workflows/update.yml runs every 6 hours on GitHub Actions:
fetch fresh news (tools/fetch_news.py, Google News RSS for 20 entity queries)
→ match to network nodes → detect co-mentions → commit. The Alicloud server
pulls every 5 minutes, so new signals appear on the live map unattended.
Candidate relationships accumulate in data/suggested_edges.csv — entity pairs
that keep sharing articles but have no edge yet; review and promote the real
ones into ownership.csv/roles.csv.
For manual data edits, one command does everything:
python tools/update.py "describe the change"
(validates + imports CSVs, re-matches news, commits, pushes → live in ~5 min)
python tools/match_news.py
Drop articles into news_inbox/ (2026-08-25_title.md; first line = title; optional
source: / url: lines). The matcher scans them against every node name + alias
(AKA block in network_data.js), handles line-broken names, suppresses
fragment false-positives ("Al Jaber" inside "Sultan Al Jaber"), and regenerates
news_data.js. Matched nodes get a gold badge on the map and a
Recent signals section in their panel. Idempotent — re-run any time.
python tools/import_linkedin.py
Export your connections first: LinkedIn → Settings & Privacy → Data privacy →
Get a copy of your data → Connections → put Connections.csv in this folder.
The importer fuzzy-matches employers against all institutions (suffix-stripping,
alias-aware) and writes my_network.js. Institutions you can reach get a
green dashed ring and your contacts appear in their detail panel — so the path
you → contact → institution → key person is visible on the map.
Privacy: my_network.js contains your personal contacts — never share it with the map.
The database is not static. Growth runs on three streams, executed by the daily 9 AM enrichment agent (a scheduled Claude session on this machine):
data/backfill_queue.csv (regenerated by
tools/backfill_queue.py) lists every institution still thin on leadership,
priority-ordered. The agent works the queue daily — researching each company's
current chairman/CEO/board with sources and adding them.ns flags re-checked against official sources and
flipped to v (or corrected), rotating through the regions weekly.
Every dossier also carries a Search on LinkedIn ↗ button (people-search
prefilled with the entity name) for manual network digging; automated LinkedIn
scraping is deliberately not part of the system (ToS) — use the official
Connections.csv export + tools/import_linkedin.py for your own network.The same pattern extends to any content: put items in an inbox, match on the alias
table, emit a *_data.js overlay. Candidates: press releases, tender awards,
event attendee lists, podcast transcripts.
The engine lives in map_template.html (stamped into every region page by
tools/build_regions.py); the landing page is the hand-editable index.html.
Connections.csv
export, a profile link, or manually) appear as a "You" pin linked to them; organizations
where unmatched contacts work become possible ways in. Updates live, no reload.?demo=1) — sample contacts that
are clearly labeled and never mixed with real data.dvh and visualViewport; reduced-motion respected.EN / 中文 switches UI chrome only; all data stays English. window.__map exposes a
debug/automation handle.
Repo: https://github.com/qizhangumich/power_network — index.html is the site entry
(identical to abu_dhabi_power_hub.html); zero-config static hosting.
git push then auto-deploys. Or CLI: vercel login
once, then vercel --prod in this folder..gitignore keeps my_network.js (your LinkedIn contacts) and
Connections.csv out of the repo — the public site simply shows no LinkedIn overlay.
Never commit these files.Facts vs. analysis stay separate. Roles/edges marked needs source are public-record but not yet re-verified against an official page. L3 "advisory ecosystem" edges (consultancies → ADDED etc.) are deliberately generic — replace with specific sourced engagements as you learn them. Parked V1 names pending role verification: Etienne Petit, Sherif Tawfik, Mohamed Almarzooqi.
Eight maps on one engine, linked by the folded region menu in the top bar:
| Path | Region | Core |
|---|---|---|
/ | Abu Dhabi | Al Nahyan · ADIA/Mubadala/ADQ/IHC · full news pipeline |
/dubai/ | Dubai | Al Maktoum · ICD/Dubai Holding · Emirates/DP World/Emaar |
/northern/ | Sharjah · RAK · Fujairah · Ajman · UAQ | Al Qasimi/Al Sharqi/Al Nuaimi/Al Mualla · Crescent/BEEAH/Wynn |
/saudi/ | Saudi Arabia | Al Saud (MBS) · PIF/Aramco · giga-projects |
/qatar/ | Qatar | Al Thani · QIA/QatarEnergy · LNG partners |
/bahrain/ | Bahrain | Al Khalifa · Mumtalakat/Bapco/Investcorp |
/oman/ | Oman | Al Said · OIA/OQ/PDO |
/kuwait/ | Kuwait | Al Sabah · KIA/KPC · merchant families |
Each region: <region>/network_data.js (same schema). tools/build_regions.py
stamps every region page from the root index.html, so design changes propagate
everywhere (update.py runs it; a region ships once its network_data.js exists —
add a new one by adding a row to REGIONS and a dataset).
News automation + CSV layer currently cover Abu Dhabi only; per-region
parameterization is the next step. All non-AD datasets are V1 backbones —
review the ns flags.