factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
상원·하원·대통령·대법관의 투표·기부·PAC·법안 등 공공 데이터를 비당파적으로 정리한 점수표
Nonpartisan scorecards for every senator, representative, president, and Supreme Court justice: voting records, donors, PAC money, and bills from public data.
데이터Python · TypeScriptGitHub @kamoras온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Civitas is an AI/ML platform that aggregates data from official U.S. government sources into scorecards and reports on the latest global news. All running on a Raspi 5 16GB.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Civitas is an open-data AI/ML platform that aggregates data from official
U.S. government sources into unified transparency scorecards for senators,
House representatives, presidents, and Supreme Court justices. It also
features an Action Center that surfaces trending civic issues from news
analysis, auto-detects ongoing national concerns as trackable monitors,
and builds a year-in-review timeline.README 전문 보기 ↗Live at civitas-research.org · Bluesky @civitas-research.org
Civitas Research ("Civitas" for short) is an open-data site that puts the public record of the U.S. federal government in one place. It reads official government records and named public sources (surveys, academic datasets, Wikipedia, newsrooms), shows each figure with its source, and builds one record for each senator, House representative, president and Supreme Court justice.
Members of Congress are compared with their peers measure by measure, with no composite grade on the site. Justices' votes are recorded but not scored. Classification uses sentence-transformer embeddings and nearest-neighbour votes, scoring is deterministic arithmetic, and a small local LLM is used only to locate and quote text. Everything runs on one Raspberry Pi 5 with no calls to cloud AI services, and the site asks visitors for no account, address or personal data.
More detail:
| Topic | Where |
|---|---|
| System diagram, caching, project structure | docs/architecture.md |
| Rendered Mermaid diagrams | docs/diagrams/ |
| Nightly pipeline phases, data sources, design rationale | docs/data-pipeline.md |
| Classification tiers and disclosed exceptions | docs/methodology/classification.md |
| Scoring and peer comparisons | docs/methodology/scoring.md, docs/methodology/ |
| Action Center | docs/action-center.md |
| Congress record, votes with the president, agencies | docs/congress.md |
| Elections, the map and live results | docs/elections.md |
| Site search and Explore's hybrid ranking | docs/search.md |
| Feeds, Bluesky, Threads and Instagram | docs/publishing.md, docs/social-accounts.md |
AGENTS.md is the developer guide: design principles, conventions and where each module lives.
You need Docker with Compose v2, about 16 GB of RAM, about 10 GB of disk, and a free api.data.gov key.
git clone https://github.com/kamoras/civitas.git
cd civitas
cp .env.example .env
# Edit .env. At minimum set DATA_GOV_API_KEY, ADMIN_TOKEN,
# PIPELINE_TRIGGER_TOKEN and CONTACT_EMAIL (the template's tokens are refused).
# Download the LLM's weights (about 731 MB)
mkdir -p llama-models
curl -fL -o llama-models/lfm2.5-1.2b-instruct-q4_k_m.gguf \
https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct-GGUF/resolve/main/LFM2.5-1.2B-Instruct-Q4_K_M.gguf
docker compose up -d
docker compose ps
The frontend is at http://localhost:3000 and the API docs at
http://localhost:8000/docs. The database starts empty. The pipeline runs on
PIPELINE_CRON_SCHEDULE (default 03:00 UTC); to start it now:
curl -X POST http://localhost:8000/api/admin/pipeline/trigger \
-H "Authorization: Bearer $ADMIN_TOKEN"
A first full load takes hours; docs/self-hosting.md says what fills in when. For hot reload during development:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
Ollama or your own llama.cpp build can replace the bundled LLM service: see
docs/operations.md. Every
environment variable is listed in .env.example.
Backend:
# Everything
docker compose run --rm --no-deps backend python -m pytest tests/ -v
# Fast tests only: no embedding model, no network
docker compose run --rm --no-deps backend python -m pytest tests/ -v -m "not slow" -n 4
# Only the embedding-model tests
docker compose run --rm --no-deps backend python -m pytest tests/ -v -m slow
Frontend:
cd frontend
npm run lint # eslint, including jsx-a11y
npm test # vitest, including the axe and contrast tests
npm run build # type errors fail CI
npm run format:check # prettier
CI runs the fast backend suite, the frontend checks and a coverage gate on
every pull request, and the slow suite on pushes to main
(.github/workflows/ci.yml). AGENTS.md's "Testing" section covers the clock
and data-volume rules every test follows.
Production is a single-node Docker Swarm. A cron job on the server runs
check-and-deploy.sh every five minutes: when main has a new commit with a
green CI run, it builds the images on the server, checks their trust stores,
and runs docker stack deploy. Swarm's start-first updates and automatic
rollback give zero-downtime deploys. Nothing in GitHub Actions runs on the
server.
To stand up a server from nothing (hardware, keys, the Swarm setup, the first data load, domains, alerts and recovery), follow docs/self-hosting.md. The service layout, health checks and operator alerts are in docs/operations.md.
Civitas reads official sources directly: Congress.gov, the Senate and House Clerk, GovInfo, the Federal Register, the FEC, the Lobbying Disclosure Act registry, STOCK Act and financial disclosures, OGE, the SEC, BLS and FRED, USAspending, Oyez and the Supreme Court Database, Voteview, the Cooperative Election Study, state election offices, and news feeds. The full list, with what each supplies and how recent it is, is on the site at /about/data; the fetch details are in docs/data-pipeline.md.
Civitas's own data (scores, breakdowns, classifications, the computed lean, API answers and CSVs) is CC BY 4.0. Outputs built on sources with their own terms carry those terms: the Supreme Court record is non-commercial only (Supreme Court Database CC BY-NC 3.0 US, Oyez CC BY-NC 4.0), and Wikipedia-derived figures are CC BY-SA 4.0. See /about/data#license.
Contributions that improve data accuracy, methodology or public usability are welcome.
The code is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). Anyone who runs a modified version of Civitas as a network service must publish their changes, not only anyone who redistributes it. That keeps every hosted fork's scoring open to inspection: if you can't see the source, you can't trust the numbers.
| Public API and MCP server | docs/public-api.md |
| Frontend layout, type and performance notes | docs/frontend.md |
| Operations: LLM options, alerts, Swarm, health checks, environment variables | docs/operations.md |
| Research notes behind method changes | docs/research/ |
| Academic references | docs/references.md |