factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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-IfREADME 전문 보기 ↗
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 🌑