尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Todos los datos públicos del gobierno de España, recopilados y cruzados en tiempo real 🕵️♂️🇪🇸🏛️
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Portal de datos públicos sobre la política española. Diputados, votaciones, contratos, subvenciones, puertas giratorias y cadenas de responsabilidad — con trazabilidad hasta la fuente. España Transparente reúne en un mismo sitio los datos que ya son públicos pero viven dispersos entre el Congreso, el INE, la Plataforma de Contratación, la BDNS y otros registros oficiales. Los normaliza, los enlaza por persona y los presenta como una cadena verificable: gasto → déficit → deuda → quién paga. Cada cifra apunta a su fuente original.檢視完整 README ↗
España Transparente reúne en un mismo sitio los datos que ya son públicos pero viven dispersos entre el Congreso, el INE, la Plataforma de Contratación, la BDNS y otros registros oficiales. Los normaliza, los enlaza por persona y los presenta como una cadena verificable: gasto → déficit → deuda → quién paga. Cada cifra apunta a su fuente original.
El producto tiene tesis explícita, pero las afirmaciones tienen que ser desmontables solo atacando la fuente oficial. Las reglas editoriales viven en
AGENTS.mdy la hoja de ruta activa enNEXT.md.
infosubvenciones.es).Fuentes públicas → etl/src/<source>/ → Supabase (Postgres) → web/src/lib/data/ → Next.js (App Router)
| Capa | Tecnología | Carpeta |
|---|---|---|
| Frontend | Next.js 15 · App Router · Tailwind · shadcn/ui | web/ |
| ETL | Python 3.12 · psycopg2 · httpx | etl/ |
| Base de datos | Supabase (PostgreSQL) · 15+ tablas, vistas y RPCs | supabase/migrations/ |
| Datos curados | YAML revisado vía PR (liderazgos, responsables) | etl/data/ |
| CI/CD | GitHub Actions · cron diario y semanal · deploy SSH a VPS | .github/workflows/ |
cd web
npm install
npm run dev # http://localhost:3000
npm run build # build de producción
npm run lint # eslint (flat config)
npm run ui:audit # primitives de layout y reglas responsive
npm run content:audit # reglas editoriales (ver AGENTS.md)
Variables requeridas: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY (producción sirve la clave publishable sb_publishable_…; la instancia self-hosted también acepta la anon JWT legacy, que es la que usa CI).
cd etl
pip install -r requirements.txt
# Todos los pipelines se ejecutan como módulos desde src/
PYTHONPATH=src python -m src.congreso.diputados
PYTHONPATH=src python -m src.ine.indicadores
PYTHONPATH=src python -m src.contratacion.contratos
PYTHONPATH=src python -m pytest tests/
Las escrituras requieren DATABASE_URL (URI directo de Postgres desde Supabase → Settings → Database). Todas las escrituras pasan por common.db.get_pg_conn() — el SDK de Supabase solo se usa para lecturas.
# 1. Ingesta de candidatos (CSV o descubrimiento BORME)
PYTHONPATH=src python -m src.puertas_giratorias.ingest --csv puertas.csv --dry-run
# 2. Revisión humana
PYTHONPATH=src python -m src.puertas_giratorias.review list
PYTHONPATH=src python -m src.puertas_giratorias.review reject <id>
# 3. Publicación (exige ≥1 fuente "primary")
PYTHONPATH=src python -m src.puertas_giratorias.review publish <id> --reviewed-by <nombre>
Nada se publica automáticamente. El frontend público lee exclusivamente de revolving_door y v_revolving_door_public; los candidatos no son accesibles por anon.
cd etl
python apply_migration.py ../supabase/migrations/<archivo>.sql
# o, alternativamente:
npx supabase db push
| Fuente | Uso |
|---|---|
| Congreso Open Data | Diputados, votaciones, iniciativas |
| INE API | IPC, PIB, EPA y salarios |
| Eurostat | Deuda pública Maastricht |
| PCSP | Contratos públicos (ATOM/XML) |
| BDNS · infosubvenciones.es | Subvenciones (organizaciones) |
| datos.gob.es | Catálogo abierto de la AGE |
| Civio | Parsers de presupuestos (EUPL) |
| Wikidata | Fallback de fotos para diputados |
El portal del Congreso aplica rate-limit agresivo (403 tras pocos requests). Los scrapers usan
curlvíasubprocessconREQUEST_DELAY = 1.5s. No bajar el delay ni paralelizar peticiones al Congreso.
npm run content:audit) — cobertura de explicaciones para cada indicador y bloqueo de términos de riesgo legal aplicados a personas sin condena firme.npm run ui:audit) — grid-cols-N requiere variante responsive; flex items-center justify-between requiere min-w-0; los colores de voto/partido se importan de lib/domain-style.ts; los tabs viven en components/domain/SectionTabs.tsx.Detalles completos en CLAUDE.md, DESIGN.md y NEXT.md.
AGENTS.md — es obligatorio antes de tocar código o copy.lint + build + auditorías).etl/data/ y deja el last_verified actualizado.MIT · El código es libre. Los datos provienen de fuentes públicas; cada vista enlaza a su origen.