factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Simulador interactivo para analizar escenarios hipotéticos de homicidios en México (2000-2026)
Translation pending
DataTypeScript · ShellGitHub @cuauhtemocbeOnlineOwner 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
Loading the full README. The saved excerpt is shown below.
Un simulador interactivo en dark mode para analizar escenarios hipotéticos de homicidios en México (2000-2026). Dualidad visual: Realidad histórica vs Simulación What-IfRead the full README ↗
Un simulador interactivo en dark mode para analizar escenarios hipotéticos de homicidios en México (2000-2026).
Dualidad visual: Realidad histórica vs Simulación What-If
El simulador permite responder preguntas "What-If" sobre homicidios en México:
El motor usa una lógica de cascada acumulativa:
Slot 0 (Fijo): Fox → 10,452 homicidios
Slot 1: [Presidente seleccionado]
Valor = 10,452 × Multiplicador₁
Slot 2: [Presidente seleccionado]
Valor = Valor₁ × Multiplicador₂
Slot 3: [Presidente seleccionado]
Valor = Valor₂ × Multiplicador₃
Slot 4: [Presidente seleccionado]
Valor = Valor₃ × Multiplicador₄
| Presidente | Tasa de Crecimiento | Multiplicador | Cierre Oficial |
|---|---|---|---|
| V. Fox | +1.6% | 1.016 | 10,452 |
| F. Calderón | +148.4% | 2.484 | 25,967 |
| E. Peña Nieto | +41.3% | 1.413 | 36,685 |
| AMLO | -18.9% | 0.811 | 29,741 |
| C. Sheinbaum* | -53.0% | 0.470 | 13,978 |
*Datos proyectados con base en tendencia observada hasta agosto 2026
pre-push (Husky) corre primero un escaneo Trivy fail-closed en cada push y aborta si trivy no está instalado; ver .claude/skills/trivy-scan/setup.md# Clonar repositorio
git clone https://github.com/username/mx-security-dark-sim.git
cd mx-security-dark-sim
# Instalar dependencias
pnpm install
# Iniciar servidor de desarrollo
pnpm dev
La aplicación estará disponible en http://localhost:5173/
| Script | Descripción |
|---|---|
pnpm dev | Inicia servidor de desarrollo en http://localhost:5173 |
pnpm start:dev | Inicia servidor de desarrollo y abre navegador automáticamente |
pnpm preview | Previsualiza el build de producción localmente |
| Script | Descripción |
|---|---|
pnpm build | Compila TypeScript y construye para producción |
pnpm typecheck | Verifica tipos de TypeScript sin generar archivos |
pnpm lint | Ejecuta linter de TypeScript |
pnpm validate | Ejecuta todas las validaciones (typecheck + tests + build) |
| Script | Descripción |
|---|---|
pnpm test | Ejecuta pruebas en modo watch (reinicia al cambiar archivos) |
pnpm test:run | Ejecuta pruebas una sola vez (para CI/CD) |
pnpm test:watch | Alias de pnpm test (modo watch explícito) |
pnpm test:coverage | Ejecuta pruebas y genera reporte de cobertura |
pnpm test:ui | Abre interfaz gráfica de Vitest en el navegador |
| Script | Descripción |
|---|---|
pnpm clean | Limpia build artifacts (dist/, cache de Vite) |
pnpm clean:all | Limpia todo incluyendo node_modules y pnpm store |
# Desarrollo diario
pnpm start:dev # Inicia dev server con navegador
# Antes de commit
pnpm validate # Valida typecheck + tests + build
# Testing con coverage
pnpm test:coverage # Ver cobertura de tests
pnpm test:ui # Debuggear tests visualmente
# Limpieza y reinstalación
pnpm clean:all && pnpm install # Reinstalación completa
# Verificar build de producción
pnpm build && pnpm preview # Build + preview local
src/
├── components/
│ ├── DualChart/ # Componentes de gráficas
│ │ ├── DualChart.tsx # Contenedor principal
│ │ └── ComparisonChart.tsx # Gráfica de comparación (Real vs What-If)
│ ├── SimulationControls/ # Controles de simulación
│ │ ├── SimulationControls.tsx
│ │ └── PresidentSlot.tsx # Selector individual
│ ├── MetricsPanel/ # Panel de métricas
│ │ └── MetricsPanel.tsx
│ └── DataSourceFooter/ # Footer con fuentes
│ └── DataSourceFooter.tsx
├── data/
│ ├── presidentes.data.ts # Datos de presidentes
│ ├── historico.data.ts # Datos históricos reales
│ └── types.ts # TypeScript interfaces
├── engine/
│ ├── SimulationEngine.ts # Motor de simulación
│ └── SimulationEngine.test.ts
├── store/
│ └── useSimulationStore.ts # Zustand store (estado global)
├── hooks/
│ └── useChartColors.ts # Hook de colores dark mode
└── App.tsx # Componente principal
# Tests unitarios
pnpm test:run
# Tests con coverage
pnpm test:coverage
# Tests en modo watch
pnpm test
Coverage Gate (enforced in vite.config.ts — pnpm test:coverage fails below these):
src/engine/** (lógica de negocio pura, ej. SimulationEngine): 100% statements / functions / linesLos umbrales globales se fijaron unos puntos por debajo del baseline medido (90.36% stmts / 80.71% branches / 89.62% funcs / 92.59% lines al 2026-07-18) para dejar margen sin volverse aspiracionales. src/engine/ lleva un umbral más alto que el resto por ser lógica de negocio pura sin dependencias de UI — ya está en 100% hoy y debe mantenerse así.
#121212#1E1E1E#E0E0E0#EF4444#10B981#3B82F6Los datos provienen de fuentes oficiales:
Nota sobre Proyecciones: Los datos de la administración de Claudia Sheinbaum (2024-2030) están proyectados con base en la tendencia de reducción del -53% observada hasta agosto de 2026 (SESNSP). Estos valores son estimaciones sujetas a cambios.
# Build
pnpm build
# El contenido de dist/ es servido como sitio estático
Railway detecta automáticamente el proyecto Vite y lo despliega.
Compatible con: Vercel, Netlify, GitHub Pages, Cloudflare Pages
main tiene branch protection: un PR no es mergeable si lint, test, typecheck, lock-check, license-check o trivy-fs fallan en CI (.github/workflows/ci.yml). enforce_admins está deliberadamente en false — el owner del repo puede saltarse el gate en un push/merge directo si hace falta, en vez de quedar bloqueado igual que cualquier otro colaborador.
git checkout -b feature/amazing-feature)pnpm test:run)pnpm typecheck)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Este proyecto está disponible bajo la licencia MIT. Ver LICENSE para más detalles.
Hecho con ❤️ y datos oficiales | Dark Mode 🌑