Pivot
Pivot은 오픈 데이터 형식 기반 고성능 실시간 분석 데이터베이스입니다
오픈 소스 기반 실시간 필터링 가능한 극장 위치 지도, 시트로 내보내기 가능. 공식 정부 제품 아님
Live, filterable geospatial picture of a theater from open sources — exportable as a briefable sheet. Not an official government product.
데이터TypeScript · PLpgSQLGitHub @runnon온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Open-source situational awareness: unattended OSINT ingest → live theater picture with MIL-STD-2525 symbology. Open sources only, not an official government product.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A web product where an intelligence professional picks a combatant command and gets a
live, filterable geospatial picture of that theater — then exports it as a doctrinally
correct, briefable sheet.
Open sources only, forever. Not an official product of any government agency, and
not a document produced under any classification system — it carries no classification
markings. MIT licensed — see LICENSE and CONTRIBUTING.md.
Live: https://intel-os.org (all six combatant commands, 12-hour unattended cycle)README 전문 보기 ↗A web product where an intelligence professional picks a combatant command and gets a live, filterable geospatial picture of that theater — then exports it as a doctrinally correct, briefable sheet.
Open sources only, forever. Not an official product of any government agency, and
not a document produced under any classification system — it carries no classification
markings. MIT licensed — see LICENSE and CONTRIBUTING.md.
Place data: GeoNames (CC-BY 4.0), bundled in worker/data/
and rebuilt with scripts/build-places.ts.
Live: https://intel-os.org (all six combatant commands, 12-hour unattended cycle)
Long-term goal: Theater Picture is the first app. The larger aim is a platform for
building and deploying unit-specific tools that are born accreditation-ready for
restricted US government networks — see docs/VISION.md.
The product spec and the hand-built proof sheet (OS-IRN-26-001) are maintained outside this repository; the spec's requirement IDs (AUTO/DATA/UX/ANL/GEO/MARK/NFR) referenced throughout the code are mapped in the conformance table below.
worker/ Ingest loop (Railway, cron 0 */12 * * *): each cycle sweeps ALL six
AORs. Every source is fetched ONCE into a shared pool — shared public
feeds (Al Jazeera, BBC World, UN News, DoD releases, DVIDS, Defense One,
gCaptain, Naval News), regional feeds (BBC desk feeds, France 24
regions), and all six per-AOR GDELT sweeps of thousands of outlets.
Each command then selects its slice of the whole pool (own-source hits
+ articles matching its gazetteer terms), so every theater mines the
full source breadth → Claude extraction (reported facts only,
attribution discipline) → dedup → geolocation validated against that
AOR's curated gazetteer → publish situation update per AOR
packages/core Domain logic: event model, MIL-STD-2525E SIDC mapping, dedup,
gazetteer + confidence scoring, situation-update builder, marking guards
web/ Next.js theater view (Vercel): command selector → MapLibre map with
milsymbol 2525E symbols, synced event list, time control, URL-encoded
filter state, per-event sourcing and confidence
supabase/ Postgres schema: events, event_sources, event_revisions, issues
(immutable snapshots), ingest_runs. Everything is free: anon reads
full issues + archive via SECURITY DEFINER projections; ingest writes use service role only.
docs/ VISION.md (long-term goal) · DECISIONS.md · symbology/ (MIL-STD-2525E
w/CHG 1 + machine-readable tables)
research/ Market, NIPRNet/compliance, and 14N-workflow research reports
Two product types (spec §4): a situation update generates unattended every 12 hours and carries no judgement layer in any form; an assessment (Phase 2) adds key judgements, alternatives and implications, and publishes only over a named analyst's signature. Auto-accept of drafted judgements is never built.
npm install
npm test # core + worker + web unit tests
npm run typecheck
npx next dev --prefix web # or: cd web && npx next dev
# one manual ingest cycle against the linked Supabase project
cd worker && npx tsx src/index.ts # needs .env (see .env.example) + ANTHROPIC_API_KEY
npx tsx src/seed.ts # deterministic seed (proof-build events, no LLM)
Env:
web/.env.local — NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY;
billing and optional analytics variables are documented in docs/STRIPE_SETUP.md
worker/.env — SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, ANTHROPIC_API_KEY, AOR
| Requirement | Where |
|---|---|
| AUTO-1 no-change issues publish | worker/src/pipeline.ts |
| AUTO-2 dedup carries all sources | packages/core/src/dedup.ts |
| AUTO-3 low-confidence / ambiguous geocodes withheld | packages/core/src/gazetteer.ts (curated + GeoNames index) |
| AUTO-5 no judgement sections | packages/core/src/issue.ts (+ tests) |
| AUTO-5 "US impact" shows reported effect only | packages/core/src/usimpact.ts (+ tests) |
| AUTO-9 failed run publishes nothing, and is recorded and alarmed | worker/src/pipeline.ts, worker/src/index.ts, /api/health, .github/workflows/staleness.yml |
| AUTO-10 issues immutable/addressable | issues.snapshot column |
| DATA-1..6 provenance/precision/revisions | schema + core types |
| UX-1/2 one state, URL-encoded | web/lib/urlState.ts |
| UX-4 info cut-off always visible | theater masthead |
| UX-5 cluster / symbol degrade | web/components/TheaterMap.tsx |
| GEO-3/4 2525-informed framing | packages/core/src/sidc.ts, web/lib/symbols.ts |
| MARK-2/3/4 markings + public-source guard | layout banners, assertPublicSource |
| Community reports kept out of issues; public source + gazetteer-only placement | supabase/migrations/20261030220000_community_reports.sql, web/lib/community.ts |
Export (the differentiator — vector ANSI-D/tabloid sheet) is Phase 3 and not built yet.