| Métrica | this 7d | prior 7d | Δ |
|---|---|---|---|
| Activas | 906 | 980 | -7.6% |
| Nuevas | 423 | 609 | -30.5% |
| Link sent | 39 | 31 | +25.8% |
| Calls booked | 31 | 21 | +47.6% |
| Booked/Link % | 79.5% | 67.7% | +11.7pp |
| Booked/Activas % | 3.4% | 2.1% | +1.3pp |
| Booked/Nuevas % | 7.3% | 3.4% | +3.9pp |
| Revenue variable | $0.00 | $0.00 | — |
| Período | Activas | Nuevas | Link sent | Calls booked | Booked/Link | Booked/Activas | Booked/Nuevas |
|---|---|---|---|---|---|---|---|
| Semana actual (7d) | 906 | 423 | 39 | 31 | 79.5% | 3.4% | 7.3% |
| Semana anterior (7d) | 980 | 609 | 31 | 21 | 67.7% | 2.1% | 3.4% |
| Día | Activas | Nuevas | Link sent | Calls booked | Booked/Link | Booked/Activas | Booked/Nuevas |
|---|---|---|---|---|---|---|---|
| 07-30 | 147 | 51 | 11 | 7 | 63.6% | 4.8% | 13.7% |
| 07-29 | 127 | 62 | 4 | 9 | 225.0% | 7.1% | 14.5% |
| 07-28 | 151 | 45 | 5 | 3 | 60.0% | 2.0% | 6.7% |
| 07-27 | 131 | 64 | 2 | 3 | 150.0% | 2.3% | 4.7% |
| 07-26 | 125 | 74 | 6 | 1 | 16.7% | 0.8% | 1.4% |
| 07-25 | 100 | 69 | 6 | 5 | 83.3% | 5.0% | 7.2% |
| 07-24 | 125 | 58 | 5 | 3 | 60.0% | 2.4% | 5.2% |
| 07-23 | 165 | 92 | 8 | 4 | 50.0% | 2.4% | 4.3% |
| 07-22 | 141 | 104 | 3 | 1 | 33.3% | 0.7% | 1.0% |
| 07-21 | 235 | 174 | 6 | 5 | 83.3% | 2.1% | 2.9% |
| 07-20 | 130 | 59 | 2 | 3 | 150.0% | 2.3% | 5.1% |
| 07-19 | 139 | 92 | 7 | 5 | 71.4% | 3.6% | 5.4% |
| 07-18 | 110 | 59 | 3 | 1 | 33.3% | 0.9% | 1.7% |
| 07-17 | 60 | 29 | 2 | 2 | 100.0% | 3.3% | 6.9% |
| BP | Sev | Estado | Detalle |
|---|---|---|---|
| BP-1 | HIGH | PASS | Template compliance All 7 required sections for principles template are present in system.md: Identity, Voice, Flow, Calibration, Principles, Tools, NO_RESPONSE. Content matches template intent. |
| BP-2 | MEDIUM | PASS | Example coverage and cap (7 base scenarios + conditional, ≤20 total) examples.md covers 6 of 7 base scenarios (happy path, resource delivery, objection handling, disqualification, off-topic, re-engagement). Keyword-trigger example (Ej 34) satisfies conditional. Total count is 35 examples, exceeding the 20-example cap. evidence (1)
|
| BP-3 | HIGH | PASS | Examples align with the flow All examples follow the 7-step flow from system.md in order (open → qualify → discovery → bridge → propose → book → post-booking). Each example reaches a terminal state (link sent, NO_RESPONSE, or confirmed booking). |
| BP-4 | CRITICAL | PASS | No internal contradictions in system.md Two passages in system.md contradict each other under the shared precondition of Step 2 (qualification). The first states that cesantía (job loss) is a disqualifier; the second states that cesantía is only a disqualifier if the lead does not clarify current employment. This creates conflicting outputs for the same precondition. evidence (2)
|
| BP-5 | CRITICAL | PASS | No cross-file contradictions All SDK files are consistent. Keywords in keywords.json align with flow steps in system.md. Examples in examples.md demonstrate the rules stated in system.md (e.g., no-calification triggers, resource delivery format, booking flow). No contradictions between files on behavior, parameters, or data. |
| BP-6 | MEDIUM | PASS | Voice consistency across examples All examples use consistent persona (Félix, first-person, warm and direct), vocabulary (Spanish neutral, no voseo), formality level (casual DM style), and tone (calm, understanding, no sales pressure). Voice is uniform across all 35 examples. |
| BP-7 | CRITICAL | PASS | Unguarded actions (PAT-004) All risky actions in system.md have inline guards. Resource delivery is guarded ('after lead responds to pain question'). Booking is guarded ('only after 4-6 exchanges + pain + context + occupation confirmed'). NO_RESPONSE triggers are explicitly listed. Examples (Ej 1, 2, 16, 34) demonstrate guards firing correctly. |
| BP-8 | HIGH | PASS | No stale version language in examples All examples use current flow language from system.md. Closing CTAs match system.md (e.g., 'Te toma menos de un minuto reservar tu espacio' in Ej 1, 2, 4). No outdated phrasing or prior-version language detected. |
| BP-9 | MEDIUM | FAIL | No duplicated instructions The hard rule about message length ('máximo 4 líneas por mensaje') is stated twice in system.md: once in the Voice section and again as a separate 'Hard rule — longitud de mensaje'. This is duplication; the rule should appear in one canonical location. evidence (2)
|
| BP-10 | MEDIUM | FAIL | Rule-vs-principle balance system.md contains multiple behavioral rules that could be demonstrated through examples instead of stated as hard rules. Examples: 'nunca hagas echo del mensaje del lead' (Hard rule), 'lenguaje sobre salud sexual' (Hard rule), 'PROHIBIDO responder en inglés' (Hard rule). These are behavioral constraints better taught via examples than enforced as rules. evidence (2)
|
| Check | Sec | Estado | Notas |
|---|---|---|---|
| 6a | 1.8 | PASS | NO_RESPONSE present (limits not checked, --no-db) |
| 6c | 3.x | WARN | 192 lines |
| 6d | 1.2 | PASS | 28 examples |
| 6e | 1.3 | PASS | 6 principles |
| 6g | PAT-006 | WARN | non-STEP-0 keyword handling |
| 6h | Anti-pat | PASS | no 'burbuja' |
| 6i | Anti-pat | PASS | no HTML comments |
| 6j | Anti-pat | FAIL | 86 em-dashes across 1 file(s); first: system.md:9 |
| 6k | PAT-006 | PASS | no tool syntax leak |
| 6l | Resources | PASS | no placeholder URLs |
| 6m | Hygiene | PASS | no audit metadata in prompt files |
| 6n | PAT-008 | PASS | URL forms consistent across files |
| 6q | PAT-001 | PASS | no instruction duplication into examples.md, keywords.json, program.json, resources.json |
| 6r | Keyword-drift | FAIL | 1 in keywords.json + recent digest, never named in system.md: ['dormir']; (9 stale drift entr(ies) ignored — no recent digest mention) |
| 6s | Hygiene | PASS | no expired dates in live SDK |
| 6t | Coverage | WARN | 6/6 principle(s) without example: #1 Escuchas más que hablas: una pregunta a la vez, nunca apiladas., #2 Respondes primero lo que el lead pregunta o pide, #3 Identificación antes que información., #4 Autoridad técnica, una vez por mecanismo., #5 Insistencia de precio — derivar a humano. |
| Fecha | Tema | Tags |
|---|---|---|
| 2026-07-27 | daily metrics jul24 27 weekly report | automated, metrics, weekly-report |
| 2026-07-26 | followup echo recurrence still broken | followups, workflow-echo, bug-recurrence, escalation |
| 2026-07-24 | daily metrics 40enforma jul23 24 | metrics, reporting, automated |
| 2026-07-23 | lead volume recovery post outage | metrics, incident, recovery |
| 2026-07-21 | mcp usage felix self serve session | mcp, self-serve, usage, telemetry |
| 2026-07-21 | personal trainers fitness coaches disqualified | qualification, rules, deploy |
| 2026-07-21 | workflow echoes lead messages as outbound | bug, workflow, follow-up, platform, critical, echo |
| 2026-07-21 | follow up duplication onlyrunonce state persistence | bug, workflow, follow-up, platform |
| 2026-07-21 | cleaning services explicit disqualification | qualification, rules, deploy |
| 2026-07-21 | workflow conexion post recurso echoes lead messages | bug, workflow, follow-up, critical |
| 2026-07-21 | descalificacion limpieza entrenadores | disqualification, occupations, deploy, no-response |
| 2026-07-21 | solo calendario romulo aaron inactivo | booking, routing, calendar, deploy |
| 2026-07-21 | followup duplicado conexion post recurso | bug, workflow, follow-up, duplicate, onlyRunOnce |
| 2026-07-21 | derivation routing 100 percent romulo provisional | routing, decision, resources |
| 2026-07-20 | agent role drift to blog consultant | agent-behavior, role-violation, critical-fix |
| 2026-07-20 | reentrega recurso opener repetido | resource-delivery, context-retention, deploy |
| 2026-07-20 | lead data raul souto 7 agendado | lead-status, qualified, scheduled |
| 2026-07-20 | manychat vs agente entrega recursos | manychat, resource-delivery, link-glued, pause-on-external, churn-risk |
| 2026-07-20 | workflow gateway bug seguimiento post link | bug, workflow, gateway, blocking |
| 2026-07-20 | seguimiento workflows disabled critical errors | workflow, critical, agent-error, pause |
| ID | Estado | Cambio pedido |
|---|---|---|
| B8 | pendiente | ✅ **APLICADO 2026-06-03 (changelog 2026-06-03).** Opener canónico ÚNICO: *"Hola, cómo estás? Cuéntame, qué te gustaría cambiar para ver la mejor forma de ayudarte?"* (de Félix 3/6, |
| E13 | pendiente | **Existe un listado de profesiones/oficios que descalifican** (además del filtro económico de E4). Falta el listado concreto + reflejarlo en SDK/examples + una sintética que muestr |
| E14 | pendiente | **Filtro para leads cuyo core es sexual-performance puntual (eréctil) (5/6):** criterio definido — "libido baja" como **síntoma hormonal SIGUE CALIFICANDO** (→ TRT/`booking_felix`, |
| E17 | pendiente | **Follow-up a mecánico no-calificado (2026-07-06/07) — causa raíz = drift del evaluador, NO el prompt.** Conv real `019f38b3` (`cristianvidalmunoz`): el agente conversacional calló |
| F15 | pendiente | **Discovery estructurado (Paso 3 nuevo en la arquitectura principles, 2026-07-08, pv_019f4286).** Después de calificar y antes del Puente, profundizar el contexto con **UNA pregunt |
| H3 | pendiente | **Regla de derivación canonical (2026-06-08, actualizada 24/6):** ideal / alta capacidad → **reparto Agustín/Rómulo** (**Agustín 70% / Rómulo 30%** — ratio invertido el 24/6 por pe |
| H4 | pendiente | **Los links de calendario NO deben quedar hardcodeados con un solo setter en los `examples.md`** — el modelo usa los ejemplos como referencia más fuerte que la regla, así que un li |
| ~~pdf_panel_hormonal~~ | pendiente | ~~`…1j2xFKnPt1…`~~ **REMOVIDO 2026-07-07** — URL daba HTTP 404 (Page Not Found) y el agente lo mandaba a leads reales (queja Félix IMG_5168). Sin reemplazo en el digest. Sacado de |
| J7 | pendiente | **Mensaje canonical para leads NO calificados** (acordado 1/6, añadido por Julián): *"Te cuento. Tenemos un sistema diseñado para hombres +40 que buscan perder grasa y recuperar su |
| K1 | pendiente | FU1: 30 minutos sin respuesta. "Hola, ¿sigues por ahí? Quedé pendiente de tu respuesta 👋" |
| K4 | pendiente | Reactivación automática del agente: 30 minutos sin actividad humana en la conversación. ⚠️ Ver P1 — Félix pidió subir a 1h para interferencia humana; verificar/decidir. |
| K7 | pendiente | Recurso del FU2 (24h): **se define después** (sigue siendo el pendiente N4). |
| K9 | pendiente | ⚠️ **AMBOS WORKFLOWS DESHABILITADOS 2026-07-10 (ver N44)** — apagados hasta fix de plataforma (evaluador `null`≠`true` + auto-seteo de `booking_link_sent`). Mientras estén off, lea |
| L3 | pendiente | Si lead no contesta al automático ManyChat → Ninjo manda follow-up (mensaje exacto pendiente OK Félix). |
| L15 | pendiente | **Activación en leads de Ads (mensaje automático de Meta):** los leads que entran por Ads reciben primero el **mensaje automático de la campaña de mensajes de Meta** (ocupa el prim |
| O7 | pendiente | **Criterio del audio inicial** (1/6): saludo simple + pregunta abierta (el mismo saludo inicial pero en audio), conectado al flujo de la keyword/publicidad que lo activa. Genera co |
| P1 | pendiente | **Pausa del mensaje** (interferencia humana): cuando el setter/Félix escribe manualmente, la plataforma lo interpreta como externo y pausa al agente. **DECISIÓN (1/6): pausa de 1 h |
| P3 | pendiente | **Contact limit + custom property para no-califica económico** (DECISIÓN 1/6): reemplazar/reforzar el corte por `NO_RESPONSE` del SDK con un stop a nivel plataforma. Property `no_c |
| N45 | pendiente | **🟠 Jubilados — alcance ambiguo en No califican (17-07).** La lista dice "jubilados **con pensión mínima**" (calificador angosto). Félix (18:55, caso kikan_88) marcó un jubilado qu |
| N43 | pendiente | **Bienvenida re-disparada en medio de la charla = ManyChat, NO el agente (10-07, MEDIUM). [root cause corregido]** Conv "Polo" `019f49ab` (captura IMG_5292): tras el discovery, rea |
| N42 | pendiente | **🟠 Flujo de entrega de recurso incompleto en prod (08-07, ABIERTO).** Félix pidió agregar un flujo para conversaciones que arrancan solo por entrega de recurso (keyword de video/P |
| N39 | pendiente | ✅ **RESUELTO 2026-07-07 (pendiente deploy) — recurso muerto `pdf_panel_hormonal`.** El agente mandó a un lead (conv del panel hormonal, IMG_5168) *"Te comparto un PDF…"* + link Dri |
| N40 | pendiente | **Envío proactivo de recursos por topic-match (07-07, ABIERTO).** El agente mandó `pdf_panel_hormonal` sin que el lead lo pidiera — lead: *"no sé qué métricas debe incluir, estoy i |
| N28 | pendiente | **Deflección de precio prematura (23/6).** Ante "¿Cuál es el costo del programa?" en frío (sin discovery, sin propuesta de llamada), el agente responde el copy canónico *"Depende d |
| N19 | pendiente | **"Perdió el hilo" / entregó recursos cuando no debía (4/6).** Félix reportó 2 conversaciones (IMG_3713/3714) donde el agente pierde contexto y manda recursos cuando solo debía con |
| N20 | pendiente | **Ads no activa el agente ni con keyword (4/6) — bloqueo central. Diagnóstico PARCIAL.** El mensaje automático de la campaña de mensajes de Meta = `"Hola, soy Félix y ayudo a profe |
| N21 | pendiente | **Consulta puntual (TRT) → el agente responde por el programa (5/6).** Félix (IMG_3758): *"le preguntan por TRT y responde por el programa"*. **Conv confirmada: `019e954e` (cesarde |
| N22 | pendiente | **"No responde" / "No hace el proceso" (5/6).** Dos reportes de Félix: (a) "No responde" (3:31, IMG_3759 — sin transcribir); (b) **"No hace el proceso en este caso donde no podría |
| N47 | pendiente | 🔴 **ABIERTO — Workflows FOLLOW_UP devuelven el mensaje del lead como outbound (eco).** 18 casos confirmados en Postgres entre 2026-07-20 20:12 y 2026-07-21 15:32: filas OUTBOUND cu |
| Y15 | pendiente | El agente seguía mandando el calendario de **Rómulo** a leads calificados aunque la regla de `system.md` ya decía Agustín. Causa: el link de Rómulo estaba **hardcodeado en 3/4 ejem |
| Señal | Valor | Evidencia (cita del cliente) |
|---|---|---|
| Enojado con la plataforma | sí | “no se resuelve ni con Claude el tema de los seguimientos. Están pausado siempre pasa lo mismo. El agente empieza a duplicar mensaje, escribe lo que escribió el Lead, eso debería haber está solucionado hace rato” |
| Es queja | sí | “no se resuelve ni con Claude el tema de los seguimientos. Están pausado siempre pasa lo mismo. El agente empieza a duplicar mensaje, escribe lo que escribió el Lead, eso debería haber está solucionado hace rato” |
| Queja constructiva (accionable) | sí | “no se resuelve ni con Claude el tema de los seguimientos. Están pausado siempre pasa lo mismo. El agente empieza a duplicar mensaje, escribe lo que escribió el Lead, eso debería haber está solucionado hace rato” |
| Señal | Cita textual | Fecha |
|---|---|---|
| Bug recurrente de eco en seguimientos — cliente lo señala como no resuelto y con expectativa de haberlo estado | “no se resuelve ni con Claude el tema de los seguimientos. Están pausado siempre pasa lo mismo. El agente empieza a duplicar mensaje, escribe lo que escribió el Lead, eso debería haber está solucionado hace rato” | 2026-07-26 |
Un creador que pide cambios concretos está enganchado (mejor señal que el silencio).
| ID | Estado | Cambio pedido |
|---|---|---|
| B8 | pendiente | ✅ **APLICADO 2026-06-03 (changelog 2026-06-03).** Opener canónico ÚNICO: *"Hola, cómo estás? Cuéntame, qué te gustaría cambiar para ver la mejor forma de ayudarte?"* (de Félix 3/6, |
| E13 | pendiente | **Existe un listado de profesiones/oficios que descalifican** (además del filtro económico de E4). Falta el listado concreto + reflejarlo en SDK/examples + una sintética que muestr |
| E14 | pendiente | **Filtro para leads cuyo core es sexual-performance puntual (eréctil) (5/6):** criterio definido — "libido baja" como **síntoma hormonal SIGUE CALIFICANDO** (→ TRT/`booking_felix`, |
| E17 | pendiente | **Follow-up a mecánico no-calificado (2026-07-06/07) — causa raíz = drift del evaluador, NO el prompt.** Conv real `019f38b3` (`cristianvidalmunoz`): el agente conversacional calló |
| F15 | pendiente | **Discovery estructurado (Paso 3 nuevo en la arquitectura principles, 2026-07-08, pv_019f4286).** Después de calificar y antes del Puente, profundizar el contexto con **UNA pregunt |
| H3 | pendiente | **Regla de derivación canonical (2026-06-08, actualizada 24/6):** ideal / alta capacidad → **reparto Agustín/Rómulo** (**Agustín 70% / Rómulo 30%** — ratio invertido el 24/6 por pe |
| H4 | pendiente | **Los links de calendario NO deben quedar hardcodeados con un solo setter en los `examples.md`** — el modelo usa los ejemplos como referencia más fuerte que la regla, así que un li |
| ~~pdf_panel_hormonal~~ | pendiente | ~~`…1j2xFKnPt1…`~~ **REMOVIDO 2026-07-07** — URL daba HTTP 404 (Page Not Found) y el agente lo mandaba a leads reales (queja Félix IMG_5168). Sin reemplazo en el digest. Sacado de |
| J7 | pendiente | **Mensaje canonical para leads NO calificados** (acordado 1/6, añadido por Julián): *"Te cuento. Tenemos un sistema diseñado para hombres +40 que buscan perder grasa y recuperar su |
| K1 | pendiente | FU1: 30 minutos sin respuesta. "Hola, ¿sigues por ahí? Quedé pendiente de tu respuesta 👋" |
| K4 | pendiente | Reactivación automática del agente: 30 minutos sin actividad humana en la conversación. ⚠️ Ver P1 — Félix pidió subir a 1h para interferencia humana; verificar/decidir. |
| K7 | pendiente | Recurso del FU2 (24h): **se define después** (sigue siendo el pendiente N4). |
| K9 | pendiente | ⚠️ **AMBOS WORKFLOWS DESHABILITADOS 2026-07-10 (ver N44)** — apagados hasta fix de plataforma (evaluador `null`≠`true` + auto-seteo de `booking_link_sent`). Mientras estén off, lea |
| L3 | pendiente | Si lead no contesta al automático ManyChat → Ninjo manda follow-up (mensaje exacto pendiente OK Félix). |
| L15 | pendiente | **Activación en leads de Ads (mensaje automático de Meta):** los leads que entran por Ads reciben primero el **mensaje automático de la campaña de mensajes de Meta** (ocupa el prim |
| O7 | pendiente | **Criterio del audio inicial** (1/6): saludo simple + pregunta abierta (el mismo saludo inicial pero en audio), conectado al flujo de la keyword/publicidad que lo activa. Genera co |
| P1 | pendiente | **Pausa del mensaje** (interferencia humana): cuando el setter/Félix escribe manualmente, la plataforma lo interpreta como externo y pausa al agente. **DECISIÓN (1/6): pausa de 1 h |
| P3 | pendiente | **Contact limit + custom property para no-califica económico** (DECISIÓN 1/6): reemplazar/reforzar el corte por `NO_RESPONSE` del SDK con un stop a nivel plataforma. Property `no_c |
| N45 | pendiente | **🟠 Jubilados — alcance ambiguo en No califican (17-07).** La lista dice "jubilados **con pensión mínima**" (calificador angosto). Félix (18:55, caso kikan_88) marcó un jubilado qu |
| N43 | pendiente | **Bienvenida re-disparada en medio de la charla = ManyChat, NO el agente (10-07, MEDIUM). [root cause corregido]** Conv "Polo" `019f49ab` (captura IMG_5292): tras el discovery, rea |