tribai.co
trib·ai·.co = tributaria + AI + Colombia
La plataforma tributaria mas completa de Colombia. 40 calculadoras fiscales, los 1,294 articulos del Estatuto Tributario (ET) indexados y navegables, asistente IA con RAG avanzado de 12 modulos sobre ~36,000 vectores, doctrina DIAN, jurisprudencia, decretos, resoluciones, leyes, calendario fiscal 2026, indicadores economicos, guias interactivas, glosario tributario, sistema de planificacion fiscal y herramientas de productividad profesional.
Produccion: superapp-tributaria-colombia.vercel.app
- Stack Tecnologico
- Asistente IA — Pipeline RAG
- 40 Calculadoras Tributarias
- Modulos de Referencia
- Explorador del Estatuto Tributario
- Sistema de Chat — Workspace Profesional
- App Nativa iOS (SwiftUI)
- Normograma DIAN
- Arquitectura de Archivos
- Base de Conocimiento
- Evaluacion RAG
- Testing
- CI/CD
- Desarrollo Local
- Variables de Entorno
- Constantes Tributarias 2026
- Licencia
| Capa | Tecnologia | Version |
|---|---|---|
| Framework | Next.js (App Router, Turbopack) | 16.1.6 |
| UI | React | 19.2.3 |
| Estilos | Tailwind CSS v4 (CSS-first, @theme inline) |
4.x |
| Lenguaje | TypeScript (strict mode) | 5.x |
| IA — LLM | Claude Sonnet 4.5 via Vercel AI SDK | @ai-sdk/anthropic 3.0.44 |
| IA — Query rewrite | Claude Haiku 4.5 | claude-haiku-4-5-20251001 |
| IA — Fallback | OpenAI GPT-4o | @ai-sdk/openai 3.0.33 |
| IA — Embeddings | multilingual-e5-large (1024d) | Pinecone Inference |
| Vector DB | Pinecone (7 namespaces, ~36,000 vectores) | SDK 7.x |
| Auth | Clerk | @clerk/nextjs 7.0.4 |
| Pagos | Stripe | 20.4.1 |
| KV / Rate Limit | Vercel KV (Redis) | @vercel/kv 3.0.0 |
| Graficas | Recharts | 3.7 |
| Grafos | react-force-graph-2d + Cytoscape + graphology | |
| Markdown | react-markdown + remark-gfm | 10.1.0 |
| Sanitizacion | isomorphic-dompurify | 3.0.0 |
| Precision financiera | decimal.js | 10.6.0 |
| Validacion | Zod v4 | 4.3.6 |
| Documentos | pdf-parse + mammoth (DOCX) + xlsx | |
| Iconos | lucide-react | 0.564.0 |
| Temas | next-themes (dark mode) | 0.4.6 |
| Analytics | Vercel Analytics | 1.6.1 |
| PWA | Service Worker + manifest.json | |
| iOS | SwiftUI (Xcode, Swift Package Manager) | |
| E2E | Playwright | 1.58.2 |
| Deploy | Vercel (auto-deploy on push to main) |
46 dependencias de produccion, 10 de desarrollo.
Pipeline RAG de 12 modulos con recuperacion multi-hop en 7 namespaces, confidence scoring, deteccion de contradicciones, formato dictamen auditado y preferencias de tono.
Query del usuario
|
[0] Cache Check — LRU (500 entries, 24h TTL, normalized key)
| (miss)
[1] Query Enhancement (Haiku 4.5)
|-- Early-exit: queries directas (Art. X) saltan LLM calls (<100ms)
|-- Rewrite: reformula con terminologia legal colombiana
|-- HyDE: genera respuesta hipotetica para embedding
|-- Decomposition: descompone queries complejas en sub-queries
|-- Query expansion: sinonimos y terminos legales
|
[2] Query Routing (namespace-router.ts)
|-- classifyQueryType: factual | comparative | procedural | temporal | doctrina | sanctions
|-- getQueryRoutingConfig: topK, maxReranked, namespaces dinamicos por tipo
|-- Detect article slugs para multi-hop
|
[3] Retrieval (Pinecone — 7 namespaces)
|-- Ronda 1: ET (namespace default) — topK: 20, threshold: 0.28
|-- Ronda 1b: 6 namespaces externos — topK: 15, umbrales especificos
|-- Ronda 2 (Multi-hop): busca fuentes que citen articulos recuperados
|-- Speculative retrieval: threshold 0.80 para fast-path
|-- Cross-namespace normalization (min-max scaling)
|
[4] Heuristic Reranking (2 pipelines paralelos)
|-- ET Reranking: chunk_type boost, article mention, title overlap, derogated penalty
|-- Multi-Source Reranking: PageRank, community, doctrina vigente, sentencia SU/C
|
[5] Context Assembly
|-- Sibling retrieval: todos los chunks del mismo articulo
|-- Token budget: 13,000 tokens max
|-- Namespace diversity: round-robin + greedy fill
|
[6] Evidence Check (heuristic, <5ms)
|-- Confidence: high (>= 0.75 + 3 sources) | medium (>= 0.55) | low
|-- Contradiction detection: derogated+vigente conflicts
|-- Namespace contribution tracking
|
[7] Prompt Building
|-- System prompt con constantes 2026 + tone preset inyectado
|-- 40 sugerencias de calculadoras (dinamicas por keyword)
|-- Contexto RAG en XML: <context>, <evidence>, <contradiction_warning>
|-- <obsolete_norms> block: normas derogadas
|
[8] Streaming Response (Sonnet 4.5)
|-- Metadata on finish: sources, ragMetadata, timestamp
|-- smoothStream (10ms delay, word chunking)
|-- Multi-provider fallback: Anthropic -> OpenAI
topK: 20 similarityThreshold: 0.28
maxContextTokens: 13,000 maxRerankedResults: 10
useHyDE: true useQueryExpansion: true
useSiblingRetrieval: true useMultiNamespace: true
speculativeThreshold: 0.80 externalSourceBudgetRatio: 0.30
Namespaces: "", doctrina, jurisprudencia, decretos, resoluciones, leyes, procedimientos
Embedding: multilingual-e5-large (1024d, cache 2,000 entries)
| Metrica | Valor | Target |
|---|---|---|
| P@5 adj | 0.884 | >= 0.85 |
| Recall@5 | 0.558 | >= 0.55 |
| MRR | 0.383 | >= 0.38 |
| Completeness | 0.913 | >= 0.90 |
| Ext Src Retrieved | 0.993 | >= 0.99 |
| Ext Src in Context | 0.886 | >= 0.88 |
| Abstention Quality | 0.574 | >= 0.57 |
| Avg Latency | 1,094ms | <= 1,200 |
| P95 Latency | 1,549ms | <= 1,600 |
| Complex P@5 | 0.290 | >= 0.29 |
| Modo | LLM | Descripcion |
|---|---|---|
| Rapido | Haiku 4.5 | Respuestas agiles, sin deep retrieval |
| Profundo | Sonnet 4.5 | Analisis completo con RAG + Chain of Thought |
| Agente | Opus 4.6 + herramientas | Investigacion agentica multi-step |
| Tono | Descripcion |
|---|---|
| Profesional | Formal, terminologia tecnica precisa, citacion completa |
| Didactico | Paso a paso, ejemplos practicos, analogias claras |
| Tecnico | Conciso, solo citas normativas y tablas numericas |
| Ejecutivo | Bullet points, resumen arriba, max 2 parrafos |
| Categoria | Calculadoras |
|---|---|
| Renta (11) | Renta PN, Renta PJ, Dividendos PN, Dividendos PJ, Anticipo de Renta, Beneficio Auditoria, Descuentos Tributarios, Zonas Francas, Comparador Regimenes, Residencia Fiscal, Limites de Beneficios |
| Laboral (9) | Nomina Completa, Comparador Contratacion, Seguridad Social, Retencion Salarios Proc. 1, Liquidacion Laboral, Horas Extras, Licencia Maternidad/Paternidad, Pension, Utilidades Gravadas |
| Patrimonio (4) | Impuesto al Patrimonio, Ganancias Ocasionales (Inmuebles), Herencias y Donaciones, Comparacion Patrimonial |
| Sanciones (3) | Extemporaneidad, Sanciones Ampliadas, Intereses Moratorios DIAN |
| IVA (2) | Referencia IVA, Impuesto al Consumo |
| Otros (11) | Conversor UVT, GMF (4x1000), Timbre, ICA Municipal, Ganancias Loterias, Depreciacion Fiscal, Debo Declarar?, SIMPLE (RST), Descuento Exterior |
Top 5 destacadas: Retencion en la Fuente, Renta PN, Comparador Contratacion, Debo Declarar?, Nomina Completa.
Cada calculadora incluye: articulos del ET vinculados, badges ("Actualizado 2026", "Incluye reforma", "Nuevo"), calculadoras relacionadas, tags de busqueda e intents para el command palette.
| Modulo | Ruta | Descripcion |
|---|---|---|
| Calendario Tributario 2026 | /calendario |
Vencimientos con filtros por obligacion y digito NIT, integracion calendario personal (ICS) |
| Tabla de Retencion | /tablas/retencion |
Conceptos, bases y tarifas de retencion con calculadora inline |
| Indicadores Economicos | /indicadores |
UVT, SMLMV, inflacion, tasa de usura con graficas historicas (Recharts) |
| Glosario Tributario | /glosario |
Terminos clave del derecho tributario colombiano A-Z |
| Doctrina DIAN | /doctrina |
Conceptos y oficios curados de la DIAN |
| Novedades Normativas | /novedades |
Timeline de cambios legislativos y reformas tributarias |
| Guias Interactivas | /guias |
Arboles de decision para procesos tributarios comunes |
| Declaracion de Renta | /declaracion-renta |
Wizard de planificacion fiscal PN |
| Declaracion Renta PJ | /declaracion-renta-juridicas |
Wizard de planificacion fiscal PJ |
| Planes y Precios | /planes |
Suscripciones con Stripe |
- 1,294 articulos del ET navegables con SSG (build-time)
- Busqueda por numero, titulo o contenido
- Clasificacion por 7 libros y titulos
- Comparador de articulos (diff entre versiones)
- Knowledge graph interactivo con 540 nodos (react-force-graph-2d)
- Metricas por articulo: PageRank, community detection (Louvain), degree centrality
- Dashboard analitico con estadisticas del corpus
- Sistema de favoritos con notas y workspaces de productividad
- Cross-references bidireccionales entre articulos
- Concordancias: DUR 1625, Resolucion Unica, CDIs
- Sidebar workspace con historial de conversaciones
- Busqueda full-text con trigrams + substring matching
- Mobile drawer responsivo
- Conversation header con titulo editable, metadatos y badges
- Separadores temporales entre mensajes (>30 min gap)
- URL deep-linking (
?conv=<id>) - Panel de evidencia RAG (confidence + pipeline details)
- Lead capture funnel (3 free → lead → 8 free → auth)
| Fase | Feature | Descripcion |
|---|---|---|
| 1 | Cmd+K Unificado | Command palette federado con 4 fuentes: navegacion, conversaciones, 40 calculadoras, 1,294 articulos. Filtros: art:, #, mode: |
| 2 | Starter Packs | 5 packs de prompts por categoria (Renta PN, IVA, Retencion, Planificacion, Litigio) en el empty state |
| 3 | User Preferences + Tono | Preferencias persistentes (localStorage) con 4 tonos inyectados en system prompt |
| 4 | ChatContainer Decomp | Monolito de 1,265 lineas reducido a 681 extrayendo 8 modulos |
| 5 | Cmd+F In-Conversation | Busqueda dentro de mensajes con highlighting, conteo de matches, navegacion |
| 6 | Keyboard Navigation | j/k mensajes, n nuevo chat, / focus composer |
| 7 | Share Conversation | Export markdown con Web Share API, fallback clipboard |
| 8 | Pinned Messages | Panel colapsable de mensajes fijados con scroll-to-message |
| 9 | Auto-Summary | Resumen heuristico: articulos citados, terminos fiscales, montos, tipo persona |
| 10 | Batch Actions | Multi-select en sidebar con archivar/eliminar masivo |
- PDF — HTML formateado con print dialog
- JSON — Datos crudos de la conversacion
- CSV — Resultados de simulacion o chat plano
- Clipboard — Texto completo
- Share — Markdown con Web Share API
- 40 calculadoras portadas a SwiftUI nativo
- Explorador del Estatuto Tributario offline
- Chat RAG conectado al backend
- Navegacion con 5 tabs (Home, Calculadoras, ET, Chat, Mas)
- 8 features de contenido (calendario, glosario, indicadores, doctrina, guias, novedades, favoritos, tablas)
- Widget de escritorio
- Screenshots para App Store
Modulo independiente de scraping y gestion del marco regulatorio colombiano.
- Scraper de normativa DIAN
- Clasificacion de vigencia con IA
- Concordancias: DUR 1625, Resolucion Unica DIAN, CDIs
- Export a Excel completo
- Actualizaciones semanales automatizadas (GitHub Actions)
- 17 scripts de procesamiento (Python)
tribai/
|-- src/ # 450 archivos TypeScript
| |-- app/ # 67 paginas (App Router)
| | |-- api/chat/route.ts # Streaming RAG chat endpoint
| | |-- api/chat/agent/route.ts # Agent mode endpoint (Opus + tools)
| | |-- api/declaracion/ # Declaracion de renta endpoints
| | |-- api/health/route.ts # Health check + circuit breaker
| | |-- api/feedback/route.ts # User feedback endpoint
| | |-- api/documents/route.ts # Document upload + parsing
| | |-- articulo/[slug]/page.tsx # 1,294 articulos SSG
| | |-- calculadoras/ # 40 calculadoras (client components)
| | |-- asistente/page.tsx # Chat IA standalone
| | |-- planificacion/page.tsx # Tax planning workspace
| | `-- ... # 18 modulos de referencia
| |
| |-- components/ # 206 componentes en 24 directorios
| | |-- chat/ # Chat container, bubbles, citations
| | | |-- canvas/ # Header, toolbar, empty-state, simulation
| | | |-- sidebar/ # Workspace sidebar, groups, items, actions
| | | |-- hooks/ # useKeyboardNavigation
| | | |-- conversation-search.tsx # Cmd+F in-conversation
| | | |-- pinned-messages-panel.tsx # Pinned messages
| | | `-- preferences-panel.tsx # User preferences slide-out
| | |-- calculators/ # Cards, results, inputs, charts
| | |-- article/ # Content, header, sidebar, timeline
| | |-- explorer/ # Grid, filters, search, graph
| | |-- dashboard/ # Stats, charts, tables
| | |-- workspace/ # Bookmarks, notes, productivity
| | |-- landing/ # Hero, sections, social proof
| | |-- auth/ # Sign-in, sign-up, gates
| | `-- ui/ # Reveal, skeleton, spinner, toast, command-palette
| |
| |-- config/ # 24 archivos de datos estaticos
| | |-- calculators-catalog.ts # 40 calculadoras con metadata
| | |-- starter-packs.ts # 5 packs de prompts
| | |-- calendar-data.ts # Calendario fiscal 2026
| | |-- glosario-data.ts # Glosario A-Z
| | |-- guias-data.ts # Arboles de decision
| | |-- tax-data*.ts # UVT, tarifas, retencion
| | |-- constants.ts # RAG config, Pinecone host
| | `-- obsolete-norms.ts # Normas derogadas
| |
| |-- lib/ # 162 modulos en 32 subdirectorios
| | |-- rag/ # Pipeline RAG (12 modulos)
| | | |-- pipeline.ts # Orchestrador master
| | | |-- query-enhancer.ts # Rewrite + HyDE + decompose
| | | |-- namespace-router.ts # Query classification + routing
| | | |-- retriever.ts # Multi-namespace + multi-hop
| | | |-- graph-retriever.ts # PageRank + community boost
| | | |-- reranker.ts # Heuristic scoring
| | | |-- context-assembler.ts # Sibling + token budget + diversity
| | | |-- evidence-checker.ts # Confidence + contradictions
| | | |-- prompt-builder.ts # XML context + tone injection
| | | |-- bm25-search.ts # Lexical fallback search
| | | |-- keyword-retriever.ts # Keyword fallback
| | | `-- current-regime-choice.ts # Regime selection logic
| | |-- chat/ # Chat utilities (12 modulos)
| | | |-- system-prompt.ts # Dynamic system prompt + tone presets
| | | |-- export-helpers.ts # PDF, CSV, JSON, clipboard
| | | |-- share-conversation.ts # Web Share API + markdown
| | | |-- conversation-summary.ts # Auto-summary heuristic
| | | |-- conversation-metadata.ts # Meta extraction + search index
| | | |-- history-storage.ts # localStorage (30 conv, 80 msgs)
| | | |-- search-engine.ts # Full-text search (trigrams)
| | | |-- session-memory.ts # 5-turn context
| | | |-- message-content.ts # Text extraction + follow-up parsing
| | | |-- calculator-context.ts # Calculator suggestions by keyword
| | | |-- chat-error.ts # Error classification
| | | `-- timestamps.ts # Message timestamp utils
| | |-- cache/ # LRU response cache (500 entries)
| | |-- pinecone/ # Client singleton + embedder (2K cache)
| | |-- ai/ # Provider fallback logic
| | |-- api/ # Rate limiter + Zod validation
| | |-- auth/ # Plans, query counters, free-use gates
| | |-- command-palette/ # Federated search sources
| | `-- ... # export, documents, calculators, utils
| |
| |-- types/ # Type definitions
| | |-- rag.ts # EnhancedQuery, SourceCitation, RAGConfig
| | |-- chat-history.ts # ChatConversation, ChatMessageFeedback
| | |-- user-preferences.ts # TonePreset, UserPreferences
| | `-- pinecone.ts # ChunkMetadata (14+ campos)
| |
| |-- hooks/ # Custom React hooks
| | |-- useChatHistory.ts # useSyncExternalStore for conversations
| | |-- useUserPreferences.ts # Persistent user preferences
| | `-- useDocumentUpload.ts # File upload hook
| |
| `-- contexts/ # React contexts
| `-- chat-layout-context.tsx # Sidebar width, collapsed, mobile drawer
|
|-- public/data/ # Static data assets
| |-- articles/ # 1,294 JSON individuales
| |-- articles-index.json # 443 KB — indice rapido
| |-- articles-index.enriched.json # 1.4 MB — indice con metadata
| |-- bm25-index.json # 1.3 MB — indice lexical
| |-- graph-data.json # 376 KB — 540 nodos
| |-- graph-metrics.json # 292 KB — PageRank + communities
| |-- dashboard-stats.json # Estadisticas del ET
| `-- explorer-facets.json # Facetas de filtros
|
|-- ios/ # App nativa SwiftUI
| |-- SuperAppTributaria/ # Source code (16 subdirs)
| |-- SuperAppTributariaTests/ # Unit tests
| |-- SuperAppTributariaUITests/ # UI tests
| |-- SuperAppTributariaWidget/ # Widget
| `-- Package.swift # SPM manifest
|
|-- normograma/ # Normograma DIAN
| |-- data/ # Datos regulatorios (11 subdirs)
| |-- scripts/ # 17 scripts Python
| `-- .github/workflows/ # Actualizacion semanal
|
|-- eval/ # Suite de evaluacion RAG
| |-- run_eval.ts # 350 queries, 17 metricas
| |-- smoke-test.ts # 15 smoke tests (pass/fail)
| |-- dataset.json # 300 standard + 40 complex
| |-- baseline-results.json # Resultados de referencia
| |-- experiments/config-grid.ts # Grid para sweeps
| |-- metrics/ # retrieval, answer-quality, faithfulness
| `-- results/ # Historial por timestamp
|
|-- tests/ # 46 archivos de test
| |-- unit/ # 34 unit tests
| |-- integration/ # 3 integration tests
| |-- security/ # 4 security tests
| |-- e2e/ # 5 Playwright specs
| |-- load/ # k6 load test
| `-- helpers/ # Mocks, fixtures
|
|-- scripts/ # 8 build scripts
| |-- orchestrator.ts # Master pipeline: scrape -> embed -> upsert
| |-- build-analytics-datasets.mjs # Graph, stats, facets
| |-- build-bm25-index.mjs # BM25 inverted index
| `-- verify-data-integrity.mjs # Data validation
|
|-- docs/ # 7 documentos operativos
| |-- RAG-PERFECTION-PLAN.md
| |-- RAG-V3-OPERATIONAL-PLAN.md
| |-- V3.1-SPRINT-OPERATIONAL-PLAN.md
| |-- release-runbook.md
| `-- vercel-environment-matrix.md
|
`-- .github/workflows/ci.yml # CI: lint + typecheck + build + test + e2e
~36,000 vectores en Pinecone distribuidos en 7 namespaces:
| Namespace | Fuente | Documentos | Chunks | Threshold |
|---|---|---|---|---|
"" (default) |
Estatuto Tributario | 1,294 articulos | ~5,000 | 0.28 |
doctrina |
DIAN + CIJUF | ~15,495 conceptos | ~30,000 | 0.20 |
jurisprudencia |
Corte Constitucional | ~175 sentencias | ~700 | 0.20 |
decretos |
DUR 1625/2016 (SUIN) | ~2,793 articulos | ~3,500 | 0.23 |
resoluciones |
DIAN Resoluciones | ~626 resoluciones | ~1,300 | 0.23 |
leyes |
Senado (Leyes tributarias) | ~8 leyes | ~60 | 0.23 |
procedimientos |
Procedimientos DIAN | Var. | Var. | 0.22 |
id_articulo, titulo, libro, estado, chunk_type, chunk_index,
total_chunks, complexity_score, total_mods, has_normas, vigente,
cross_references, pagerank, community, degree, articulos_slugs
Scraping (7 scrapers) -> Parsing (3 parsers) -> Chunking (512 tokens, legal-aware)
-> Metadata enrichment (PageRank, community, cross-refs) -> Embedding (multilingual-e5-large)
-> Batch upsert (96/batch, 16s delay, exponential backoff) -> Validation
npm run smoke-test # 15 tests, ~20s, pass/fail con exit code
npm run eval # 350 queries, 17 metricas, ~6 min
npm run eval:judge # + LLM Judge: 30 sample con Haiku evaluador + Sonnet respuestas (~15 min)- 350 queries (300 standard + 40 complejas + 10 derogation)
- Categorias: factual, comparative, procedural, temporal, edge_case, negative, sanctions, doctrina, multi_source
- Dificultad: easy (28), medium (99), hard (223)
| Metrica | Descripcion |
|---|---|
| P@5 adj | Precision@5 ajustada |
| Recall@5 | Cobertura de articulos esperados |
| MRR | Mean Reciprocal Rank |
| NDCG@5 | Normalized DCG |
| Citation Accuracy | Articulos citados correctos |
| Source Presence | Fuentes esperadas presentes |
| Contains Expected | Contenido esperado presente |
| Error Rate | Tasa de errores |
| Ext Src Retrieved | Fuentes externas recuperadas |
| Ext Src in Context | Fuentes externas en contexto |
| Abstention Quality | Calidad de abstencion |
| Completeness | Cobertura de aspectos |
| Avg Latency | Latencia promedio (ms) |
| P95 Latency | Percentil 95 latencia |
| Complex P@5 | Precision para queries complejas |
| Complex Completeness | Completeness queries complejas |
| Judge Composite* | LLM Judge: faithfulness + completeness + relevance + citation + clarity |
46 archivos de test en 5 categorias:
| Tipo | Archivos | Herramienta |
|---|---|---|
| Unit | 34 | Vitest / Node test runner |
| Integration | 3 | API route testing |
| Security | 4 | XSS, injection, rate-limit abuse, cron auth |
| E2E | 5 | Playwright (Chromium) |
| Load | 1 | k6 |
- Calculadoras: renta, patrimonio, ICA, dividendos, comparador, formato, popularidad, busqueda, URL state
- RAG: evidence-checker, namespace-router, reranker, regime-choice, keyword-retriever, obsolete-norms, semantic-cache
- Chat: session-memory, contextual-questions, error, message-content, search-engine, conversation-metadata, calculator-context
- Calendario: ICS export, NIT parsing, status
- API: rate-limiter, validation, feedback
- Storage: history, productivity, anonymous-query-counter
- Utils: data-integrity, comparison-diff, normalization
article-navigation.spec.ts— Navegacion del ETcalculadora-flow.spec.ts— Flujo completo de calculadoradark-mode.spec.ts— Toggle de temalanding-page.spec.ts— Landing page load + sectionsresponsive-mobile.spec.ts— Layout mobile
npm test # Unit + security
npx playwright test # E2E (requires build)
npm run smoke-test # RAG smoke tests3 jobs con concurrency control:
-
Verify (30 min timeout)
npm run lint:strict— 0 warnings maxnpm run typecheck— full TS validationnpm run build:ci— production build
-
Test (10 min timeout)
npm test— unit + security tests
-
E2E (20 min timeout, depends on Verify)
- Install Playwright Chromium
npm run build:cinpx playwright test
Auto-deploy via Vercel en push a main. Cada PR genera preview deployment.
git clone https://github.com/Cespial/tribai.git
cd tribai
npm install
cp .env.example .env.local
# Configurar variables requeridas (ver seccion abajo)
npm run dev # Dev server con Turbopack (http://localhost:3000)npm run dev # Dev server (Turbopack)
npm run build # Production build (1,300+ paginas SSG)
npm run lint # ESLint
npm run lint:strict # Falla con warnings
npm run typecheck # TypeScript check
npm run verify # lint + typecheck + build
npm run smoke-test # 15 smoke tests RAG
npm run eval # 350 queries, 17 metricas
npm run eval:judge # + LLM Judge
npm run data:build # Rebuild analytics datasets
npm run data:verify # Verificar integridad de datos| Variable | Descripcion |
|---|---|
ANTHROPIC_API_KEY |
API key de Anthropic (Claude) |
PINECONE_API_KEY |
API key de Pinecone |
PINECONE_INDEX_NAME |
Nombre del indice (default: estatuto-tributario) |
| Variable | Descripcion |
|---|---|
CHAT_MODEL |
Modelo del chat (default: claude-sonnet-4-5-20250929) |
OPENAI_API_KEY |
Fallback de enhancement/reranking |
OPENAI_CHAT_MODEL |
Modelo OpenAI fallback (default: gpt-4o) |
| Variable | Descripcion |
|---|---|
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY |
Clerk publishable key |
CLERK_SECRET_KEY |
Clerk secret key |
STRIPE_SECRET_KEY |
Stripe secret key |
STRIPE_WEBHOOK_SECRET |
Stripe webhook secret |
NEXT_PUBLIC_STRIPE_PRO_PRICE_ID |
Stripe price ID |
| Variable | Descripcion |
|---|---|
KV_REST_API_URL |
Vercel KV (Redis) URL |
KV_REST_API_TOKEN |
Vercel KV token |
UVT 2026: $52,374 COP (Resolucion DIAN)
SMLMV 2026: $1,750,905 COP (Decreto 0025 de 2025)
Auxilio de transporte: $249,095 COP (Decreto 1470 de 2025)
Tarifa renta PJ: 35% (Art. 240 ET)
Tarifa renta PN: progresiva 0%-39% (Art. 241 ET)
IVA general: 19% (Art. 468 ET)
GMF: 4x1000 (Art. 871 ET)
Reforma vigente: Ley 2277 de 2022
Proyecto privado. Todos los derechos reservados.
tribai.co — inplux