Reorganiza repo como fuente de la verdad + propuesta v1.0 con emisión de facturas

- Estructura nueva: README maestro, bitacora/ (REGISTRO, PENDIENTES, plantillas),
  propuesta/, fuentes/; material superado a _archivado/
- Propuesta v1.0: MVP BIND-first con emisión asistida MXN/USD (dry-run +
  confirmación, timbra PAC de BIND), 112-136 h / $67,200-$81,600 + IVA,
  stack .NET 10 + EF Core + Angular 21 + PostgreSQL 17 sobre Azure
- Bitácora: historial de correos + 2 llamadas (incl. revisión 4-jun) y pendientes
- Prototipo y diagrama actualizados a v1.0; precios de Azure verificados
- Archivo ajeno (proyecto EOS) retirado del repo

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
JohannVelazquez
2026-06-04 10:57:27 -06:00
parent 404e6f3b89
commit 633d05e330
47 changed files with 32977 additions and 472 deletions
+293
View File
@@ -0,0 +1,293 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title>Balam — Qué se necesita para construir la plataforma</title>
<style>
:root{
--bg:#0f172a; --panel:#1e293b; --panel2:#334155;
--ok:#10b981; --warn:#f59e0b; --bad:#ef4444; --info:#3b82f6;
--text:#e2e8f0; --muted:#94a3b8; --accent:#a78bfa;
--border:#475569;
}
*{box-sizing:border-box}
body{
margin:0; padding:32px;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 100%);
color:var(--text); min-height:100vh;
}
h1{font-size:28px; margin:0 0 4px}
.subtitle{color:var(--muted); margin-bottom:32px; font-size:14px}
.legend{
display:flex; gap:16px; flex-wrap:wrap; margin-bottom:24px;
padding:12px 16px; background:rgba(0,0,0,.25); border-radius:8px;
font-size:13px;
}
.legend-item{display:flex; align-items:center; gap:6px}
.dot{width:12px; height:12px; border-radius:50%}
.dot.ok{background:var(--ok)} .dot.warn{background:var(--warn)}
.dot.bad{background:var(--bad)} .dot.info{background:var(--info)}
.dot.accent{background:var(--accent)}
.grid{
display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px;
margin-bottom:24px;
}
.row{
display:grid; grid-template-columns:1fr 2fr 1fr; gap:24px;
align-items:stretch; margin-bottom:24px;
}
.col{display:flex; flex-direction:column; gap:16px}
.card{
background:var(--panel); border:1px solid var(--border);
border-radius:12px; padding:16px;
box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.card h3{margin:0 0 8px; font-size:14px; display:flex; align-items:center; gap:8px}
.card .badge{
font-size:10px; padding:2px 8px; border-radius:10px;
background:var(--panel2); color:var(--muted); font-weight:600;
text-transform:uppercase; letter-spacing:.5px;
}
.badge.ok{background:rgba(16,185,129,.2); color:#6ee7b7}
.badge.warn{background:rgba(245,158,11,.2); color:#fcd34d}
.badge.bad{background:rgba(239,68,68,.2); color:#fca5a5}
.badge.info{background:rgba(59,130,246,.2); color:#93c5fd}
.badge.accent{background:rgba(167,139,250,.2); color:#c4b5fd}
.card ul{margin:6px 0 0; padding-left:18px; font-size:12px; color:var(--muted)}
.card li{margin:3px 0; line-height:1.4}
.section-title{
font-size:11px; font-weight:700; text-transform:uppercase;
letter-spacing:1.5px; color:var(--muted); margin:32px 0 12px;
padding-bottom:8px; border-bottom:1px solid var(--border);
}
.core-card{
background:linear-gradient(135deg,#4c1d95 0%,#7c3aed 100%);
border:2px solid var(--accent);
text-align:center; padding:24px;
}
.core-card h2{margin:0 0 8px; font-size:18px}
.core-card p{margin:0; font-size:13px; color:#ddd6fe}
.arrow{
display:flex; align-items:center; justify-content:center;
font-size:24px; color:var(--accent);
}
.checklist{
background:rgba(0,0,0,.3); border-left:4px solid var(--warn);
padding:16px 20px; border-radius:8px; margin-top:16px;
}
.checklist h3{margin:0 0 12px; font-size:14px; color:var(--warn)}
.checklist ol{margin:0; padding-left:20px; font-size:13px; line-height:1.7}
.checklist li strong{color:#fcd34d}
.footer-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px}
.footer-card{background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:16px}
.footer-card h4{margin:0 0 8px; font-size:13px}
.footer-card p, .footer-card ul{font-size:12px; color:var(--muted); margin:0; line-height:1.5}
.footer-card ul{padding-left:18px}
.pill{
display:inline-block; padding:2px 8px; border-radius:6px;
background:var(--panel2); font-size:11px; margin-right:4px;
}
@media (max-width:900px){
.grid,.row{grid-template-columns:1fr}
.arrow{transform:rotate(90deg)}
}
</style>
</head>
<body>
<h1>Balam · Plataforma de Automatización Financiera</h1>
<div class="subtitle">¿Qué se necesita para construirla? — vista de un solo vistazo</div>
<div class="legend">
<div class="legend-item"><span class="dot ok"></span> Ya existe / disponible</div>
<div class="legend-item"><span class="dot warn"></span> Por confirmar con Balam</div>
<div class="legend-item"><span class="dot bad"></span> Bloqueador si falta</div>
<div class="legend-item"><span class="dot info"></span> Lo construyo yo</div>
<div class="legend-item"><span class="dot accent"></span> Servicio externo (costo Balam)</div>
</div>
<!-- ============ FILA 1: FUENTES DE DATOS ============ -->
<div class="section-title">1 · Fuentes de datos (de dónde sale la información)</div>
<div class="grid">
<div class="card">
<h3>BIND ERP <span class="badge ok">API confirmada</span></h3>
<ul>
<li>Facturas, clientes, catálogo</li>
<li>Timbrado CFDI con PAC integrado</li>
<li>Límite 20K req/día (suficiente)</li>
<li><strong>Falta confirmar:</strong> sandbox, webhooks, endpoints de escritura</li>
</ul>
</div>
<div class="card">
<h3>3 Bancos (PDFs) <span class="badge warn">Solo PDF hoy</span></h3>
<ul>
<li>2 bancos MX (Banorte + Intercam?)</li>
<li>1 banco US: IBC Bank Texas</li>
<li>Sin API en MVP, sin sandbox</li>
<li><strong>Falta:</strong> muestras reales anonimizadas</li>
</ul>
</div>
<div class="card">
<h3>BUK / Jira <span class="badge bad">Diferido Fase 2</span></h3>
<ul>
<li>Nómina (BUK) y horas (Jira)</li>
<li>BUK: servicio problemático, API por confirmar</li>
<li>NO entran en MVP</li>
<li>Habilitan flujo end-to-end más adelante</li>
</ul>
</div>
</div>
<!-- ============ FILA 2: LA PLATAFORMA ============ -->
<div class="section-title">2 · La plataforma que construyo (capa sobre BIND, no reemplazo)</div>
<div class="card core-card">
<h2>⚙️ Plataforma de Operaciones Financieras</h2>
<p>Orquesta el flujo entre BIND, bancos y el equipo · No emite CFDI · No reemplaza contabilidad</p>
</div>
<div class="grid" style="margin-top:16px">
<div class="card">
<h3>📥 Ingesta &amp; Sync <span class="badge info">Construir</span></h3>
<ul>
<li>Conector BIND API (lectura)</li>
<li>Upload de PDFs bancarios</li>
<li>Parser IA (Claude) para PDFs</li>
<li>Validación de totales</li>
</ul>
</div>
<div class="card">
<h3>🔁 Motor de negocio <span class="badge info">Construir</span></h3>
<ul>
<li>Conciliación pagos ↔ facturas</li>
<li>Cobranza con lista blanca dura</li>
<li>Templates de correo + recordatorios</li>
<li>Audit log universal</li>
</ul>
</div>
<div class="card">
<h3>📊 UI &amp; Reportes <span class="badge info">Construir</span></h3>
<ul>
<li>Dashboard CxC / vencidas / próximas</li>
<li>RBAC: Finanzas / Dirección / Ops</li>
<li>Export Excel para BIND</li>
<li>Multimoneda MXN + USD (TC DOF)</li>
</ul>
</div>
</div>
<!-- ============ FILA 3: SERVICIOS EXTERNOS ============ -->
<div class="section-title">3 · Servicios externos (Balam los paga directo)</div>
<div class="grid">
<div class="card">
<h3>☁️ Azure <span class="badge accent">$45$140 USD/mes</span></h3>
<ul>
<li>App Service + worker</li>
<li>PostgreSQL administrado</li>
<li>Blob Storage para PDFs</li>
<li><strong>Falta:</strong> ¿subscripción existe?</li>
</ul>
</div>
<div class="card">
<h3>🤖 Claude API <span class="badge accent">$5$20 USD/mes</span></h3>
<ul>
<li>Parsing de PDFs bancarios</li>
<li>Sin entrenamiento sobre datos del cliente</li>
<li>Costo por página procesada</li>
</ul>
</div>
<div class="card">
<h3>💳 Stripe MX <span class="badge accent">% por transacción</span></h3>
<ul>
<li>Solo si confirman pago con link</li>
<li>RFC + CLABE + rep. legal requeridos</li>
<li><strong>Falta confirmar:</strong> ¿lo quieren?</li>
</ul>
</div>
</div>
<!-- ============ FILA 4: LO QUE NECESITO DE BALAM ============ -->
<div class="section-title">4 · Lo que Balam debe entregar antes / durante Fase 0</div>
<div class="grid">
<div class="card">
<h3>👥 Personas <span class="badge warn">Por nombrar</span></h3>
<ul>
<li>1 contacto técnico (día a día)</li>
<li>1 gerente administrativo (reglas)</li>
<li>Admin de BIND para resolver dudas</li>
<li>SLA respuesta &lt;48 h en bloqueadores</li>
</ul>
</div>
<div class="card">
<h3>🔑 Accesos <span class="badge warn">Crítico</span></h3>
<ul>
<li>API Key de BIND (o gestionarlo)</li>
<li>Subscripción Azure</li>
<li>Acceso a portal IBC para descarga PDFs</li>
<li>Cuenta Stripe MX (si aplica)</li>
</ul>
</div>
<div class="card">
<h3>📄 Datos &amp; reglas <span class="badge warn">Inicio Fase 0</span></h3>
<ul>
<li>3 PDFs reales (1 por banco) anonimizados</li>
<li>Lista blanca: ACUNTIA + Top 3 con nombres legales</li>
<li>Manual de marca</li>
<li>NDA (suyo o mío)</li>
<li>Ciclo de cobranza actual (días, escalación)</li>
</ul>
</div>
</div>
<!-- ============ DECISIÓN PENDIENTE ============ -->
<div class="checklist">
<h3>⚠️ Decisión pendiente del CTO antes de cotizar firme</h3>
<ol>
<li><strong>Alcance del MVP:</strong> ¿Opción A "BIND-first" (34 semanas, ~$3645K MXN) o Opción B "MVP completo con conciliación bancaria" (6 semanas, ~$6684K MXN)?</li>
<li><strong>BIND API:</strong> sandbox disponible (aunque sea pagado), webhooks expuestos, endpoints de escritura (registrar pagos / asientos).</li>
<li><strong>Pago con link Stripe:</strong> ¿es requerimiento real o se difiere a Fase 2?</li>
<li><strong>Operación:</strong> nombres de contacto técnico y gerente administrativo + cuenta Azure.</li>
</ol>
</div>
<!-- ============ FOOTER: PARÁMETROS ============ -->
<div class="footer-grid">
<div class="footer-card">
<h4>💰 Modelo comercial</h4>
<ul>
<li><span class="pill">600 MXN/h</span> + IVA, facturación semanal</li>
<li>Time &amp; Materials con soft cap por fase</li>
<li>Pago a 7 días, anticipo de 30 h Fase 0</li>
<li>Dedicación medio tiempo (~20 h/semana)</li>
</ul>
</div>
<div class="footer-card">
<h4>⏱️ Tiempo &amp; entrega</h4>
<ul>
<li>MVP B completo: 6 semanas esfuerzo · 8 semanas calendario</li>
<li>MVP A BIND-first: 34 semanas esfuerzo</li>
<li>Soporte post-launch: 2 semanas incluidas</li>
<li>Demo semanal viernes + standup async 2-3/sem</li>
</ul>
</div>
</div>
</body>
</html>