Memoria

Todo lo que sé y cómo lo organizo

highConstruidoClaudefreetierai-routergeminirotacion-keysfinancierosettingsahorro-costosmodo-ia08/07/26

Rotación de free tier: 4 keys de Google x 3 ciclos de modelos, switch pago/free tier

mediumConstruidoClaudefinancierocrmcostostogglehidratacionagent-cost-table07/07/26

Toggle Total/Hoy en tabla "Costo por agente" de /financiero

highConstruidoClaudesales-closergeminiretry-loggingcompletadoauditoria-completa07/07/26

gemini.js: retry loop ahora loguea a system_logs (no solo console.error) — cierra tarea #8 sin guardrail (Gregory pone límite directo del proveedor)

highConstruidoClaudecachingcached_tokensai_model_catalogtrazabilidadgeminicompletado07/07/26

Cache de tokens: calculado y trackeado en todos los agentes — cache_price_per_1m en ai_model_catalog, cachedTokens en los 3 wrappers, propagado a 6 agentes + visible en /agents/models

highConstruidoClaudesales-closercachinggeminiprompt-engineeringtarea-9completado07/07/26

sales-closer: prompt reestructurado — system prompt 100% idéntico entre requests, datos del prospecto movidos al mensaje de usuario (tarea #9 completada)

highDecisiónClaudeagents-checklistprocesodocumentaciongolden-rule07/07/26

Nuevo documento AGENTS_CHECKLIST.md — checklist obligatorio a leer antes de tocar cualquier agente

highBugClaudegeminifallbackbugcostosthinking-tokenspendiente07/07/26

gemini.js: fallback interno flash-lite→flash mal atribuido en logs y costo — encontrado auditando thinking tokens de todos los agentes

mediumBugClauderesearcherthinking-tokensbugpendiente07/07/26

researcher.js nunca loguea thinking_tokens pese a usar Gemini 2.5 Flash (thinking prendido por defecto)

highRegla de oroClaudesales-closerincidente-23-06costosrulegeminibilling07/07/26

Nueva regla de oro: cruzar incidentes de costo contra el dashboard real del proveedor, nunca confiar solo en system_logs

highBugClaudesales-closergeminiretry-logicbugpendienteescalado-volumen07/07/26

El retry loop de gemini.js no loguea a system_logs en cada intento fallido — solo console.error — esto oculta incidentes de rate-limit/cuota exactamente cuando más importa verlos

highBugClaudesales-closertokens_estimatedbugfinancierodata-qualitypendiente07/07/26

El "33k tokens/req" de sales-closer era en realidad ~12.1k reales — 182 logs sintéticos del incidente 23/06 (tokens_estimated:true) se promediaban junto con datos reales

mediumContextoClaudesales-closergeminiglmpricingmodelo-avanzadopendiente07/07/26

Precios oficiales investigados 07/07/2026: Gemini caching + GLM-4.6/4.5 — para decidir si Gregory sube a un modelo más avanzado en sales-closer

highBugClaudesales-closerfinancierotokensbugpostgrestrpcagents-page07/07/26

Financiero y /agents/[slug] subcontaban costos/tokens de sales-closer por bugs de muestreo (no de logging)

highBugClaudesales-closerescalate_gregoryntfybugnotificaciones07/07/26

escalate_gregory nunca notificaba de verdad — guardaba notified_gregory:false (al revés) y no mandaba ningún push

highDecisiónClaudesales-closercostosgeminicachingragprompt-engineeringpendiente07/07/26

sales-closer: prompt caching de Gemini (no vector/RAG) es el camino recomendado para bajar el costo de ~33k tokens/req — pendiente spec + OK de Gregory antes de tocar el copy de venta

mediumConstruidoClaudesales-closerestadosprospectscleanup07/07/26

sales-closer: fix de estados en el prompt (converted→conversion_ready) + eliminado status objection muerto del filtro de query

mediumConstruidoClaudeflowsagent_model_configflowcanvaslive-data07/07/26

/flows: el modelo de cada nodo pipeline ahora es en vivo desde agent_model_config, no texto hardcodeado

highRegla de oroClauderuleoraclenpmdeployregla-de-oropackage-json06/07/26

REGLA NUEVA: si el git pull en Oracle trae cambios en package.json, correr npm install ahí también, no alcanza con el pull

highBugClaudebugcriticooraclenpmopenaiai-routerresearchercopywritersales-closerresuelto06/07/26

CRÍTICO RESUELTO: faltaba el paquete npm "openai" en Oracle — researcher/copywriter/closer fallaban en cada corrida

mediumConstruidoClaudefeaturewebhook-whatsappauto-replystatusreplied06/07/26

Webhook de WhatsApp: mensajes automáticos (bot del negocio) también pasan a status=replied

mediumBugClaudebugceomanagementmemory_jsonpending06/07/26

CEO agent falló hoy (05/07/2026) con "memory_json is not defined" — corre por su propio cron diario, no relacionado con el pipeline de prospección

highDecisiónClaudedecisionresponse-analyzerdesactivadowebhook-whatsappsales-closerpending-redesign06/07/26

Response Analyzer DESACTIVADO (05/07/2026) — se rediseñará para vivir en el webhook y ser el router bot/humano real

highBugClaudebugcriticoresponse-analyzerprospectsabandonedsales-closerresueltorace-condition05/07/26

CRÍTICO RESUELTO: 41 prospectos reales quedaron abandonados 12+ días — nuevo status "abandoned" visible en el CRM

highDecisiónClaudedecisionresponse-analyzersales-closerarquitecturarouterno-retirar05/07/26

Gregory decidió MANTENER response-analyzer.js — a futuro será el que derive a distintos agentes de cierre, no solo sales-closer

mediumPendienteClaudependingresponse-analyzersales-closerneeds_closer_replygap05/07/26

Gap encontrado (no arreglado): cuando Response Analyzer marca "interested", no reactiva needs_closer_reply — el Closer no retoma solo

highBugClaudebugfinancierocrmsupabaserow-limitsum_api_costcriticoresuelto05/07/26

CRÍTICO RESUELTO: Financiero mostraba costos subcontados — Supabase corta cualquier select a 1000 filas, la función de agregación que el código esperaba nunca existía

highPendienteClaudependingfinancierographcosto-por-prospectofeature-futura05/07/26

PEDIDO A FUTURO: gráfico de costo total por conversación/prospecto (todos los stages sumados)

mediumDecisiónClaudewhatsapppricingventana-24htemplatesendersales-closeraclaracion05/07/26

Aclaración: el fee de Meta es por mensaje-template (Marketing), no por conversación — la ventana de 24h no lo baja

highConstruidoClaudepricingwhatsapptwiliometasendersettingsconfirmadowhatsapp_pricing05/07/26

Precio real de WhatsApp CONFIRMADO y editable en /settings — Meta $0.0618/msg (Marketing, Argentina) + Twilio $0.005/msg = $0.0668 total

mediumDecisiónClaudedecisionwhatsapptemplatescrmdescartado05/07/26

Gregory decidió NO construir el visor de templates de WhatsApp en el CRM — prefiere verlos directo en Twilio Console

mediumDecisiónClaudedecisionwhatsappverificacion-numerolookupdiferido05/07/26

Gregory decidió NO implementar todavía la verificación de línea (line_type_intelligence) antes de encolar

highDecisiónClaudepricingwhatsapptwiliometasenderdecisionfuentes-oficiales05/07/26

PRECIO REAL de WhatsApp confirmado con fuentes oficiales (05/07/2026) — Twilio $0.005 + fee de Meta por categoría, NO es un flat $0.010

highPendienteClaudependingsenderemail-fallbacktwilio-statusgap-de-diseno05/07/26

PENDIENTE: fallback de email no se activa si Twilio acepta el mensaje pero falla la entrega después (async)

highPendienteClaudependingwhatsappverificacion-numerotwilio-lookupmeta-quality-scoreenqueuer05/07/26

PENDIENTE: no existe forma oficial de verificar si un número tiene WhatsApp antes de enviar — investigar mitigación con Lookup line_type_intelligence

mediumConstruidoClaudefeaturesendercodigo-muertoherramientaagents-datatemplates-whatsapp05/07/26

sender.js auditado: código muerto borrado, rampa Meta ficticia borrada, message-sender reclasificado a herramienta

highConstruidoClaudefeaturesettingscrmenqueuerdaily-send-limitsystem_settings05/07/26

Límite diario de mensajes ahora editable en el CRM (/settings) — nueva tabla system_settings, default 100/día

mediumBugClaudebugfixenqueuerpendingTodayCountcodigo-muertoherramienta05/07/26

Enqueuer.js: 3 fixes de la auditoría — comentario viejo borrado, pendingTodayCount sin filtro de fecha corregido, código muerto eliminado

highBugClaudebugfixcrontaboraclepayment-reviewernotifierresuelto04/07/26

RESUELTO: crontab de Oracle corregido — payment-review cada 30 min, notifier muerto eliminado

highBugClaudebugfixntfynotificacioneswebhook-whatsappByteStringresuelto04/07/26

RESUELTO: notificaciones push ntfy.sh fallaban si el nombre del negocio tenía emoji (ByteString error)

highConstruidoClaudepipelinecronfeatureweekdayenv-varsrc-index04/07/26

Pipeline completo ahora solo corre lun-vie por defecto (PIPELINE_WEEKDAYS_ONLY), toggle en cualquier momento

highBugClaudebugcrontaboraclepayment-reviewermercadopagonotifiercritico04/07/26

CRÍTICO: crontab de Oracle tiene "node src/index.js payment" (no existe) en vez de "payment-review" — el chequeo de suscripciones MP nunca corrió cada 30 min como se diseñó

mediumBugClaudebugdocumentacionagents-datacrmschedulecronenqueuerpayment-reviewer04/07/26

agents-data.ts tenía horarios inventados por agente para pasos que en realidad corren en la cadena lineal de PIPELINE_STAGES (un solo cron a las 11:00 UTC)

highContextoClaudeoraclesshaccesokeyopsservidor04/07/26

ACCESO SSH A ORACLE: tengo acceso directo — key en C:\Users\cande\Downloads\ssh-key-2026-06-21.key, IP 163.176.206.142

highRegla de oroClaudeoraclesshruleopspreferencia-gregoryregla-de-oro04/07/26

Gregory prefiere que yo ejecute directo en Oracle por SSH cuando sea posible, en vez de solo darle el comando

mediumBugClaudeoraclepm2crontabbug-fixdocumentacionclaude-mdsystem-md04/07/26

CLAUDE.md/SYSTEM.md documentaban PM2 como el scheduler de Oracle — la realidad es un crontab, PM2 nunca se arrancó

highBugClaudepayment-agentbug-fixmercadopagopricingpanel-generatorcobro04/07/26

Bugs de cobro corregidos: payment-agent.js ignoraba el precio real del prospecto y siempre cobraba el monto global por defecto

highConstruidoClaudepanel-generatorcopywriterherramientaagente-vs-herramientapanel-clientpricingrediseño04/07/26

Panel Generator dejó de usar IA — ahora es herramienta. Copywriter genera los 2 campos del panel en la misma llamada del copy de la web

mediumConstruidoClaudeflowscrmpaneldocumentacionuipanel-flow04/07/26

Nueva pestaña "Panel de venta" en /flows del CRM + PANEL_FLOW.md

highDecisiónClaudepricingpreciopreciosmodelo-negociobusiness-modelarspanel-generatorsales-closerpayment-agentregla-de-orohyper-important04/07/26

MODELO DE NEGOCIO UNIVERSAL (04/07/2026): $35.000 ARS primer mes, $25.000 ARS/mes después, SIN NEGOCIACIÓN, para TODOS los rubros

mediumConstruidoClaudeweb-qapuppeteerloggingknown-limitationdocumentation04/07/26

web-qa.js: wait de Puppeteer bajado a 4s, logging de costo $0 corregido, límite conocido del check visual documentado + logueado explícito

highBugClaudeweb-qarunQaLoopbug-fixpipelineorchestrationflowsindex.js04/07/26

Bug crítico encontrado y corregido: runQaLoop() en src/index.js medía rechazos contra el status viejo (copy_ready), rota por el propio rediseño de QA de hoy

mediumConstruidoClaudeseo-specialistweb-analyzeragente-vs-herramientacrmflowsagents-dataterminologia04/07/26

SEO Injector marcado como herramienta (no agente) en todo el CRM + limpieza menor de código

highRegla de oroClauderulegolden-ruleterminologiaagente-vs-herramientaseo-specialistcrmagents-data04/07/26

Regla de oro: si no usa IA, no es "agente" — es "herramienta", en toda la doc y el CRM

highConstruidoClaudecopywriterweb-qaseo-specialistqa_fix_fieldstargeted_fixtemplate-selectorcrmfeature_builtcost-optimization04/07/26

Fix quirúrgico en reintentos de QA (Copywriter) + eliminación de IA redundante en SEO Specialist

highConstruidoClaudeweb-generatorcopywriterweb-qaseo-specialisttemplate-selectortemplate_variant_rulesqa_failedgolden-rulecrmbug-fixfeature_built04/07/26

Web Generator hardening: nunca avanza roto, selector de template por datos (template_variant_rules), QA rutea inteligente (contenido→Copywriter, técnico→qa_failed)

mediumDecisiónClaudepanel-generatorcopywritercontent_type_schemapendingfuture-work04/07/26

Idea de Gregory: panel-generator debería usar el copy del Copywriter (content_type_schema) para vender más

mediumBugClaudeseo-specialistcopy_contentsection_briefbug-fixcopywriterweb-generator04/07/26

Fix: seo-specialist.js leía hero_subheadline de section_brief (siempre vacío) — corregido a copy_content

highRegla de oroClauderulegolden-ruleweb-generatorcopywritererror-handlingnever-ship-brokenlogging04/07/26

Regla de oro: si falla la generación de contenido para un cliente, el prospecto nunca avanza de etapa

highConstruidoClauderesearchergroundingcostoscrmagents-datathinking-tokensskillsgemini03/07/26

Contador de grounding (RPD) + costos en vivo por agente + skill del researcher conectado

highConstruidoClaudecopywriterweb-generatorsection_briefcopy_contentcontent_type_schematemplate-selectortemplates-pagecrmbug-fixfeature_built03/07/26

Fix del bug de section_brief + copywriter dinámico por template + página /templates en el CRM

highPendienteClauderesearcherprospectorgoogle-mapsgroundinggeminicomparacionpendiente-ultra-importante03/07/26

ULTRA IMPORTANTE — recordar a Gregory: comparar Grounding con Google Maps (Gemini) vs Google Places API (prospector actual)

highBugClaudecopywriterweb-generatorseo-specialistsection_briefbugauditoriaai-routermodelodocumentacion-desactualizadasystem_logserror-rate03/07/26

Auditoría completa del agente copywriter — su output (section_brief) se genera, se paga, y nunca se usa

highHallazgoClauderesearchercostosbuggeminiauditoriaagents-mdquota42903/07/26

Auditoría completa del agente researcher (src/pipeline/researcher.js) — costo real 4-10x lo documentado

highRegla de oroClaudeweb-analyzerrubrogolden-ruleextraccion-contenidopivot-rubro03/07/26

REGLA: al agregar un rubro nuevo, revisar extractSiteData() en web-analyzer.js (teamNames asume Dr./Dra.)

mediumBugClaudeflowsreact-flowbugcrmpendiente-confirmar03/07/26

Posible bug: las líneas (edges) de conexión en /flows no se renderizan en el entorno de preview local

highRegla de oroClaudegolden-rulepreviewprocesodev-serverproceso03/07/26

REGLA DE ORO: matar procesos de preview propios colgados directo, sin preguntar

highDecisiónClaudequalifiersales-closervisibility_gapnecesidadpricingpivot-rubro03/07/26

Qualifier calcula visibility_gap (necesidad de visibilidad) — separado del score, usado por Sales Closer para variar el ángulo por prospecto

highRegla de oroClaudegolden-ruleagents-dataAGENTS.mdprocesopivot-rubro03/07/26

REGLA DE ORO: al tocar un agente, actualizar AGENTS.md Y agents-data.ts — no solo uno

mediumConstruidoClaudeverceldeploymenthamburguesaspivot-rubro03/07/26

Push del pivot hamburguesas/lomiterías verificado READY en Vercel

highConstruidoClaudehamburguesaslomiteriaspivot-rubropricingprospectorqualifierweb-generatorpanel-generatorsales-closertemplate_catalogprospecting_configmercadopago03/07/26

Pivot hamburguesas/lomiterías implementado — prospector, qualifier, web-generator, panel-generator, sales-closer, agents-data.ts, AGENTS.md

highDecisiónClaudeceocfomanagementfase6rubrohamburguesaslomiteriapricingcacexperimentoroadmap02/07/26

Plan y contexto de experimento de rubro: hamburguesas/lomiterías (Argentina) — para CEO/CFO cuando se activen

highDecisiónClauderubroverticalestrategiagatekeeperwhatsappreachabilityqualifierroadmap02/07/26

Criterio de rubro ideal: pocas/ninguna persona entre el WhatsApp y quien decide comprar

mediumBugClauderesponse-analyzerbugsentimentfalse-positivefunnelroadmap02/07/26

response-analyzer clasifica preguntas genéricas como "interested" — falso positivo

highDecisiónClaudemeta-pixelremarketingtrackingbrandingmarketingroadmappanel-publico01/07/26

Feature planeada: Meta Pixel en panel público/webs para tracking de vistas + remarketing

highBugClaudeprospectorgoogle-placespricingbug-fixcost-optimizationhas_bad_website01/07/26

Google Prospector: Place Details cobraba el doble de lo real ($0.050 vs $0.025/lugar)

highDecisiónClaudefase6cfomanagementpricingai_model_catalogreminder01/07/26

Agentes financieros (Fase 6) deben chequear precios oficiales actualizados a diario

highConstruidoClaudeagentscrmai-routermodel-cataloggeminiopenaianthropicpricingbug-fix01/07/26

Catálogo de modelos IA + selector por agente desde el CRM (los 8 agentes)

mediumConstruidoClaudeagentscrmtokenssystem_logsresearchercopywriterthinking_tokens30/06/26

Tokens IN/OUT por agente en CRM (último run + promedio 7 días)

mediumConstruidoClaudeflowscrmflowcanvassupabaseschemalocalStoragepersistence30/06/26

Flow layout: migrado de localStorage a Supabase (tabla flow_layout)

mediumConstruidoClaudeflowscrmflowcanvasreactflowuicolor-pickerlocalStorage30/06/26

Flow Canvas: templates, QA reject loop, outcomes, enqueuer, inbound-wa + color picker y guardado de layout

highConstruidoClaudenotifierpayment-agentdashboardflujo-pagopipelineclosermercadopago30/06/26

Notifier eliminado + flujo de pago movido al dashboard

highRegla de oroClaudesystem-mdregla-de-oroprocesodocumentacioncada-prompt30/06/26

Verificar SYSTEM.md en CADA prompt, no solo al terminar módulos

mediumContextoClaudesystem-mddocumentacionactualizacion30/06/26

SYSTEM.md actualizado 2026-06-30 con estado real del sistema

highPendienteClaudecronpm2automatizacionpendienteoracle30/06/26

NO activar crons PM2 todavía — Gregory lo pide cuando esté listo

mediumConstruidoClaudepayment-reviewerpm2cronecosystemtask-8oracle30/06/26

Task 8 completado: payment-reviewer cron via PM2 ecosystem

highConstruidoClaudedomain-agentporkbuncloudflarednstask-7registrar30/06/26

Task 7 completado: domain-agent con Porkbun + Cloudflare

highRegla de oroClaudeoraclesshcopy-pasteregla-de-oroux30/06/26

Regla de oro: comandos Oracle siempre listos para copiar y pegar

highRegla de oroClaudememoriabusquedakeywordsregla-de-oroantes-de-preguntar30/06/26

Regla de oro: buscar en memoria con keywords específicos del tema, no genéricos

highRegla de oroClauderegla-de-oroerroresauto-mejoraprocesosin-que-lo-pida30/06/26

Regla de oro: cuando me equivoco, crear regla de oro automáticamente sin que Gregory lo pida

highConstruidoClaudedomain-agentcloudflaretask-7token-permissionsblockerdns-check30/06/26

Tarea 7 — domain-agent: fix checkDomainAvailability + blocker CF token

highContextoClaudecloudflareoracledomain-agentinfraestructuracredenciales30/06/26

Cloudflare y registrante configurados en Oracle .env — no preguntar a Gregory

mediumContextoClaudesesionmemoriareglas-de-orocrm30/06/26

Sesión 2026-06-29: sistema de memoria completado + 4 nuevas reglas de oro

highRegla de oroClaudecrmvisibilidadregla-crm30/06/26

Todo lo que existe en el sistema debe estar visible en el CRM

highRegla de oroClaudememorialogdisciplina30/06/26

Escribir en memory después de CADA prompt, no solo al terminar módulos

highRegla de oroClaudereglas-de-orocrmmemoriaproceso30/06/26

Reglas de oro: siempre actualizar CLAUDE.md Y Supabase (category=rule) juntos

mediumConstruidoClaudememorycrmdashboard30/06/26

Página /memory reestructurada con 3 pestañas: Dashboard, Capas, Memorias

highRegla de oroClaudedocumentacionmdconocimientoobligatorio30/06/26

Todo lo construido tiene su .md — buscar antes de preguntar, crear si no existe

highRegla de oroClaudeverceldeployobligatorio30/06/26

Verificar Vercel READY después de cada push antes de avisar a Gregory

highRegla de oroClaudesystem.mddocumentacionobligatorio30/06/26

Actualizar SYSTEM.md en el mismo commit cuando cambie algo significativo

highRegla de oroClaudememoriaworkflowobligatorio30/06/26

Escribir en memoria después de CADA tarea — la info está, solo hay que buscarla

highRegla de oroClaudeagentscostosobligatorio30/06/26

Actualizar AGENTS.md en el mismo commit cuando se toca un agente

highRegla de oroClaudecrmtransparenciaobligatorio30/06/26

Todo cambio que hago queda visible en el CRM — sin que Gregory lo pida

highRegla de oroClaudesddspecobligatorio30/06/26

Spec antes de codear para cualquier tarea que tome más de 5 minutos

highRegla de oroClaudegitcalidadobligatorio30/06/26

No commitear código roto — cada commit debe funcionar

highDecisiónClaudememoriareglaworkflowclaude30/06/26

Regla de oro: escribir en memoria después de CADA tarea, no solo al terminar módulos

mediumConstruidoClaudecrmmemoryuivercel30/06/26

Página /memory en CRM: búsqueda, filtros, cards expandibles, form para agregar entradas

highContextoClaudearquitecturaoraclevercelinfraestructura30/06/26

Dos ambientes: Oracle (server.js 24/7) + Vercel (CRM Next.js)

highConstruidoClauderestaurantsaasmpdashboardcreateRestaurantAccount30/06/26

Flujo completo restaurante SaaS: pago MP → createRestaurantAccount → dashboard editable

highDecisiónClaudetemplateweb-generatorrestaurantdentista30/06/26

Selector de template: restaurant/cafe/bakery → hamburguer-1, dental caro → dentista-boutique, dental económico → dentista-familiar

highContextoClaudesupabasedatabaserestaurantschema30/06/26

Tablas Supabase: prospects (central), restaurants (clientes SaaS), menu_categories, menu_items, testimonials, memory (nueva), message_queue, system_logs

mediumConstruidoClaudentfynotificacioneswebhooktwiliobug30/06/26

ntfy.sh push notifications: topic prospectos-pd. NUNCA emojis en headers HTTP (ByteString error)

highPendienteClaudedomaincloudflarepayment-reviewerpendienterestaurant30/06/26

Pendiente: Domain Agent (Cloudflare) y Payment Reviewer (cron) — tareas 7 y 8 de RESTAURANT_FLOW.md

highDecisiónClaudeprocesosddspecworkflow30/06/26

Proceso: Spec Driven Development. Antes de construir cualquier feature grande, escribir spec en .md y Gregory lo aprueba

highAvisoClaudec-levelagentesmemoryrecordatoriofuturo30/06/26

RECORDATORIO: cuando Gregory diga construir agentes C-level, integrar con tabla memory PRIMERO

mediumContextoClaudepipelineoracleagentes30/06/26

Pipeline completo: prospector → qualifier → researcher → copywriter → web-generator → seo → qa → panel → enqueuer → payment → domain → payment-review → sender → closer → analyzer → notifier

mediumDecisiónClaudempprecioscloserrestaurant30/06/26

Precios MP configurables por env: MP_SETUP_AMOUNT=30000 ARS setup, MP_MONTHLY_AMOUNT=20000 ARS/mes