Plataforma open source para explorar, analizar y consultar legislación española mediante grafos de conocimiento, IA y dashboards interactivos.
LexFlow transforma legalize-es — el corpus de leyes españolas en Markdown, versionado con Git — en una plataforma interactiva para explorarlas, entenderlas y consultarlas. Objetivo final: una app de escritorio standalone, sin Docker ni Python para el usuario.
- Buscar leyes — full-text, semántica e híbrida; por
#tag(materias BOE), por acrónimo o nombre corto (LOPD, LEC…), por ministerio, o navegando por comunidad autónoma. - Navegar el grafo de conocimiento — cross-referencias entre leyes y artículos, con un panel de "leyes relacionadas".
- Hablar con el chatbot legal — responde con herramientas reales vía MCP, en local (Ollama, LM Studio) o en la nube (OpenAI, Anthropic, Google).
- Consultar dashboards — compliance y tendencias legislativas.
- Redactar en el editor — citas tipadas, plantillas, borrador asistido por IA y comentarios inline.
- Organizar con tags propias y revisar el historial de versiones y diffs de cada ley (del git de legalize-es).
Requisitos: Python 3.12+, uv, Node.js.
git clone https://github.com/VforVitorio/LexFlow.git
cd LexFlow
git submodule update --init --recursive # corpus de legalize-es
uv sync --all-extras
uv run python main.py # backend en :8000, docs interactivas en /docscd frontend
npm install
npm run dev # Vite en :5173, proxy /api → :8000Atajo:
./scripts/dev.ps1arranca backend + frontend a la vez.
Producción (un solo proceso): cd frontend && npm run build && cd .. && uv run python main.py — FastAPI sirve la API bajo /api/v1 y el SPA en /.
- Backend — Python 3.12, FastAPI + Pydantic v2, NetworkX (grafo), FastMCP (chat), uv, Ruff, mypy, pytest.
- Frontend — React 18 + TypeScript, Vite, TanStack Query, Zustand, Tailwind CSS, Vitest + Playwright.
Cuatro capas sobre el mismo corpus: API REST, grafo de conocimiento, chat legal y dashboards.
LexFlow/
├── src/lexflow/ # backend: api/ core/ chat/ graph/ dashboards/
├── frontend/ # React + TypeScript (Vite)
├── data/legalize-es/ # submódulo: corpus de leyes
├── tests/ # pytest
└── main.py # entry point del backend
Toda la API vive bajo /api/v1/*. Documentación interactiva en /docs; inventario completo en docs/backend/api-endpoints.md.
- CLAUDE.md — stack, convenciones y contrato API ↔ frontend.
- ROADMAP.md — plan por fases.
- CONTRIBUTING.md — cómo abrir una PR.
Flujo trunk-based: rama feat/xxx / fix/xxx / docs/xxx desde main, PR de vuelta a main, CI (test, lint, typecheck) en verde y sin squash — se preserva el histórico completo.
El roadmap restante se completa mediante un loop de agentes autónomo
(agent-loop, GitHub Actions) que recoge issues, implementa, revisa y abre
PR sin intervención humana, tres veces al día. Cada tarea del loop tiene su
propio agente/modelo, elegido por coste-beneficio:
| Tarea | Modelo principal | Alternativas |
|---|---|---|
| Revisión (juicio/seguridad, pre-PR) | GPT-5.3 Codex (OpenAI, vía Cursor) | GPT-5.6 Sol (OpenAI) → Kimi K3 (Moonshot) como respaldo garantizado |
| Implementación general | Kimi K3 (Moonshot) | GLM-5.2 (Zhipu), Qwen3.7 Max (Alibaba) |
| Implementación — documentación | MiniMax M3 | DeepSeek V4 Flash, MiMo v2.5 (Xiaomi) |
| Implementación — tests | MiniMax M3 | GLM-5.2 (lógica compleja) |
| Implementación — frontend | Composer 2.5 (Cursor) | Grok 4.5 / 4.6 (Cursor) |
Detalle de las cadenas de fallback y la política de coste en
.github/agent/README.md.
Este proyecto existe gracias a legalize-es, que recopila y versiona legislación española en Markdown.
Apache 2.0 — Copyright 2026 VforVitorio.
