{"id":"cs-1782783846840-tip6bwt9","status":"done","createdAt":1782783846840,"finishedAt":1782784004767,"meta":{"projectName":"xzonassite","projectPath":"C:\\xampp\\htdocs\\xzonassite","messagePreview":"Quiero que profundices en todos, SEO Y Agent comercial whatsapp, con mas profundidad, Guardalo de alguna forma para ti e","missionId":null,"phaseId":null},"events":[{"event":"status","data":{"text":"Modo IDE / sesión — completo (80 herramientas, uso selectivo)"},"at":1782783846858},{"event":"status","data":{"text":"Agente"},"at":1782783846903},{"event":"status","data":{"text":"Modo revisión: snapshot local por archivo"},"at":1782783846904},{"event":"agent","data":{"agentId":"agent-7b5a77da-da58-4aa0-93c0-ca919b3b4894","projectPath":"C:\\xampp\\htdocs\\xzonassite"},"at":1782783846904},{"event":"changes","data":{"sessionId":"cs-1782783846857-mk9kx4","pending":0},"at":1782783846904},{"event":"status","data":{"text":"Procesando…"},"at":1782783847250},{"event":"text","data":{"chunk":"Continuando el hilo: reviso el transcript previo y la infraestructura del agente comercial WhatsApp y SEO para profundizar y persistir el conocimiento del proyecto.\n"},"at":1782784004767},{"event":"tool_activity","data":{"activity":{"id":"tool_ac11eb86-0d25-4cf5-a7e4-5c63de61c0d","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:19.623Z"}},"at":1782783859623},{"event":"tool_activity","data":{"activity":{"id":"tool_9e363185-8c9b-42e9-93ba-7628d221f5a","name":"grep","status":"running","summary":"grep: whatsapp|agent.*comercial|lab.?ia|project.?knowledge","detail":"","at":"2026-06-30T01:44:20.159Z"}},"at":1782783860159},{"event":"tool_activity","data":{"activity":{"id":"tool_5cf2cda3-d50f-4a49-b46b-c0918a4ecc5","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:21.669Z"}},"at":1782783861669},{"event":"tool_activity","data":{"activity":{"id":"tool_9e363185-8c9b-42e9-93ba-7628d221f5a","name":"grep","status":"completed","summary":"grep: whatsapp|agent.*comercial|lab.?ia|project.?knowledge","detail":"","at":"2026-06-30T01:44:26.958Z"}},"at":1782783866958},{"event":"tool_activity","data":{"activity":{"id":"tool_3f9d2062-e8c0-4a91-8ebc-b5e5ca6b14c","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\.cursor-bridge\\knowledge.json","detail":"","at":"2026-06-30T01:44:29.249Z"}},"at":1782783869249},{"event":"tool_activity","data":{"activity":{"id":"tool_9c9bbe01-30cc-47a3-b40e-a54c2b3002e","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\AGENTS.md","detail":"","at":"2026-06-30T01:44:29.599Z"}},"at":1782783869599},{"event":"tool_activity","data":{"activity":{"id":"tool_4e845b6b-61bd-467e-b408-5159d9baa6e","name":"grep","status":"completed","summary":"grep: C:\\xampp\\htdocs\\xzonassite\\ops\\lab-ia-portal","detail":"","at":"2026-06-30T01:44:30.747Z"}},"at":1782783870747},{"event":"tool_activity","data":{"activity":{"id":"tool_49ed8bc0-0170-4124-badf-fe489541aef","name":"read","status":"completed","summary":"read: …-56b7-48c2-b0ae-a3c38ea278f9\\agent-7e382fa9-56b7-48c2-b0ae-a3c38ea278f9.jsonl","detail":"","at":"2026-06-30T01:44:31.521Z"}},"at":1782783871521},{"event":"text","data":{"chunk":"Profundizando en SEO y agente comercial WhatsApp: leo archivos concretos ya identificados y la API de conocimiento del lab IA.\n"},"at":1782784004767},{"event":"tool_activity","data":{"activity":{"id":"tool_855f2d72-1967-43e6-bd57-de2d46ad38e","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:35.543Z"}},"at":1782783875543},{"event":"tool_activity","data":{"activity":{"id":"tool_57b1b806-afd6-4344-a5f1-0cc0b24f52d","name":"glob","status":"running","summary":"glob: ","detail":"","at":"2026-06-30T01:44:35.948Z"}},"at":1782783875948},{"event":"tool_activity","data":{"activity":{"id":"tool_2902b476-cf86-42fe-99fc-1a4e272690b","name":"glob","status":"running","summary":"glob: ","detail":"","at":"2026-06-30T01:44:36.331Z"}},"at":1782783876331},{"event":"tool_activity","data":{"activity":{"id":"tool_f97077c2-7b5d-42a6-9c58-9b23eaeb74a","name":"glob","status":"running","summary":"glob: ","detail":"","at":"2026-06-30T01:44:37.068Z"}},"at":1782783877068},{"event":"tool_activity","data":{"activity":{"id":"tool_23110f09-f20e-4e22-9b40-cd59a510c24","name":"read","status":"running","summary":"read: …p\\htdocs\\xzonassite\\ops\\multiagent-supervisor\\deploy\\AGENTES-INSTRUCCIONES.md","detail":"","at":"2026-06-30T01:44:37.334Z"}},"at":1782783877334},{"event":"tool_activity","data":{"activity":{"id":"tool_2902b476-cf86-42fe-99fc-1a4e272690b","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:38.707Z"}},"at":1782783878707},{"event":"tool_activity","data":{"activity":{"id":"tool_23110f09-f20e-4e22-9b40-cd59a510c24","name":"read","status":"completed","summary":"read: …p\\htdocs\\xzonassite\\ops\\multiagent-supervisor\\deploy\\AGENTES-INSTRUCCIONES.md","detail":"","at":"2026-06-30T01:44:38.816Z"}},"at":1782783878816},{"event":"tool_activity","data":{"activity":{"id":"tool_f97077c2-7b5d-42a6-9c58-9b23eaeb74a","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:38.976Z"}},"at":1782783878976},{"event":"tool_activity","data":{"activity":{"id":"tool_57b1b806-afd6-4344-a5f1-0cc0b24f52d","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:44.939Z"}},"at":1782783884939},{"event":"tool_activity","data":{"activity":{"id":"tool_f5b49ce4-a729-481e-a1fc-406979641f5","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\ops\\baileys-bridge\\README.md","detail":"","at":"2026-06-30T01:44:48.606Z"}},"at":1782783888606},{"event":"tool_activity","data":{"activity":{"id":"tool_47c0ba48-884c-4eef-bae6-e21a860058f","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\ops\\baileys-bridge\\src\\index.js","detail":"","at":"2026-06-30T01:44:49.344Z"}},"at":1782783889344},{"event":"tool_activity","data":{"activity":{"id":"tool_74f21f2b-90fc-4928-9c75-f10d3056e0d","name":"read","status":"completed","summary":"read: …gestion-anuncios-anunciantes\\herramientas\\agent-captacion-sandbox-backend.php","detail":"","at":"2026-06-30T01:44:49.685Z"}},"at":1782783889685},{"event":"tool_activity","data":{"activity":{"id":"tool_2258dde1-8789-445e-8de3-6eb4e80f947","name":"read","status":"completed","summary":"read: …nassite\\gestion-anuncios-anunciantes\\includes\\whatsapp_outbound_queue_lib.php","detail":"","at":"2026-06-30T01:44:50.428Z"}},"at":1782783890428},{"event":"tool_activity","data":{"activity":{"id":"tool_4a6df5f3-f0bd-47f5-b606-4dcd2c60ae4","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\hub-seo-router.php","detail":"","at":"2026-06-30T01:44:50.832Z"}},"at":1782783890832},{"event":"tool_activity","data":{"activity":{"id":"tool_a3f4648c-6808-4ba7-993c-b5e3720da04","name":"read","status":"completed","summary":"read: …site\\gestion-anuncios-anunciantes\\herramientas\\seo-keyword-command-center.php","detail":"","at":"2026-06-30T01:44:51.163Z"}},"at":1782783891163},{"event":"tool_activity","data":{"activity":{"id":"tool_914152ac-1fba-4ff5-86d3-7c8fe0e6b7b","name":"grep","status":"running","summary":"grep: C:\\xampp\\htdocs\\xzonassite\\ops\\multiagent-supervisor","detail":"","at":"2026-06-30T01:44:54.088Z"}},"at":1782783894088},{"event":"tool_activity","data":{"activity":{"id":"tool_6e1f5292-3aa4-49c6-8a0f-cf3aacb0af0","name":"read","status":"running","summary":"read: …\\xzonassite\\gestion-anuncios-anunciantes\\herramientas\\panel-agent-hub.php => ","detail":"","at":"2026-06-30T01:44:54.645Z"}},"at":1782783894645},{"event":"tool_activity","data":{"activity":{"id":"tool_914152ac-1fba-4ff5-86d3-7c8fe0e6b7b","name":"grep","status":"completed","summary":"grep: C:\\xampp\\htdocs\\xzonassite\\ops\\multiagent-supervisor","detail":"","at":"2026-06-30T01:44:54.884Z"}},"at":1782783894884},{"event":"tool_activity","data":{"activity":{"id":"tool_c97172cc-39af-4fd9-b068-84af396ffc1","name":"glob","status":"running","summary":"glob: ","detail":"","at":"2026-06-30T01:44:55.315Z"}},"at":1782783895315},{"event":"tool_activity","data":{"activity":{"id":"tool_31ce1ff3-0981-47c6-a2ff-903950cc1d0","name":"glob","status":"running","summary":"glob: ","detail":"","at":"2026-06-30T01:44:55.403Z"}},"at":1782783895403},{"event":"tool_activity","data":{"activity":{"id":"tool_c97172cc-39af-4fd9-b068-84af396ffc1","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:55.591Z"}},"at":1782783895591},{"event":"tool_activity","data":{"activity":{"id":"tool_31ce1ff3-0981-47c6-a2ff-903950cc1d0","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:44:55.730Z"}},"at":1782783895730},{"event":"tool_activity","data":{"activity":{"id":"tool_b634448b-7e30-452b-86fa-50d42b6c4d3","name":"read","status":"completed","summary":"read: …site\\ops\\multiagent-supervisor\\config\\agent_content_templates\\xzonassite.json","detail":"","at":"2026-06-30T01:44:58.942Z"}},"at":1782783898942},{"event":"tool_activity","data":{"activity":{"id":"tool_05f4f277-878a-4baa-bbb4-92b0fa8e611","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\ops\\multiagent-supervisor\\app\\config.py","detail":"","at":"2026-06-30T01:44:59.561Z"}},"at":1782783899561},{"event":"tool_activity","data":{"activity":{"id":"tool_00d655fe-372f-4f1c-935c-cfbc01548d0","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\ops\\multiagent-supervisor\\app\\main.py","detail":"","at":"2026-06-30T01:44:59.853Z"}},"at":1782783899853},{"event":"tool_activity","data":{"activity":{"id":"tool_26234c75-ea6f-4089-ab5b-21a4b0348cd","name":"read","status":"completed","summary":"read: …docs\\xzonassite\\gestion-anuncios-anunciantes\\herramientas\\panel-agent-hub.php","detail":"","at":"2026-06-30T01:45:00.490Z"}},"at":1782783900490},{"event":"tool_activity","data":{"activity":{"id":"tool_fbde2d38-d8b3-4ee8-9475-a0c79bbc86a","name":"grep","status":"completed","summary":"grep: C:\\xampp\\htdocs\\xzonassite","detail":"","at":"2026-06-30T01:45:04.609Z"}},"at":1782783904609},{"event":"tool_activity","data":{"activity":{"id":"tool_ccfa5f6d-d84f-4ad0-9107-24342fbb918","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\.serena\\memories\\seo_indexing_policy_2026-02-19.md","detail":"","at":"2026-06-30T01:45:10.482Z"}},"at":1782783910482},{"event":"tool_activity","data":{"activity":{"id":"tool_90edf669-f61e-4de3-a7b2-ce9541e444e","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\ops\\multiagent-supervisor\\config\\rag_projects.json","detail":"","at":"2026-06-30T01:45:10.776Z"}},"at":1782783910776},{"event":"tool_activity","data":{"activity":{"id":"tool_3b1197cf-fdb6-410b-a209-267ef9cf8a9","name":"read","status":"running","summary":"read: …nassite\\gestion-anuncios-anunciantes\\herramientas\\whatsapp-outbound-queue.php","detail":"","at":"2026-06-30T01:45:11.311Z"}},"at":1782783911311},{"event":"tool_activity","data":{"activity":{"id":"tool_ded29357-c61f-4759-b21f-aab15cd528b","name":"glob","status":"running","summary":"glob: ","detail":"","at":"2026-06-30T01:45:11.387Z"}},"at":1782783911388},{"event":"tool_activity","data":{"activity":{"id":"tool_3b1197cf-fdb6-410b-a209-267ef9cf8a9","name":"read","status":"completed","summary":"read: …nassite\\gestion-anuncios-anunciantes\\herramientas\\whatsapp-outbound-queue.php","detail":"","at":"2026-06-30T01:45:11.496Z"}},"at":1782783911496},{"event":"tool_activity","data":{"activity":{"id":"tool_ded29357-c61f-4759-b21f-aab15cd528b","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:45:24.424Z"}},"at":1782783924424},{"event":"tool_activity","data":{"activity":{"id":"tool_0f415639-41ae-42cf-a9be-76a228c246e","name":"read","status":"running","summary":"read: C:\\xampp\\htdocs\\cursor-mobile-bridge\\lib\\project-knowledge.js","detail":"","at":"2026-06-30T01:45:26.192Z"}},"at":1782783926192},{"event":"tool_activity","data":{"activity":{"id":"tool_1f5db636-906d-4329-9ed6-22d11faea7a","name":"glob","status":"running","summary":"glob: ","detail":"","at":"2026-06-30T01:45:26.270Z"}},"at":1782783926270},{"event":"tool_activity","data":{"activity":{"id":"tool_0f415639-41ae-42cf-a9be-76a228c246e","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\cursor-mobile-bridge\\lib\\project-knowledge.js","detail":"","at":"2026-06-30T01:45:26.384Z"}},"at":1782783926384},{"event":"tool_activity","data":{"activity":{"id":"tool_1f5db636-906d-4329-9ed6-22d11faea7a","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:45:34.343Z"}},"at":1782783934343},{"event":"tool_activity","data":{"activity":{"id":"tool_263b4ebf-6d37-414e-b8fa-90f7654c227","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\cursor-mobile-bridge\\config\\project-phases.json","detail":"","at":"2026-06-30T01:45:36.907Z"}},"at":1782783936907},{"event":"tool_activity","data":{"activity":{"id":"tool_d1457d7f-1b30-4cd2-b50d-f8a3add9e22","name":"read","status":"completed","summary":"read: …cs\\cursor-mobile-bridge\\data\\project-knowledge\\c-xampp-htdocs-xzonassite.json","detail":"","at":"2026-06-30T01:45:37.562Z"}},"at":1782783937562},{"event":"tool_activity","data":{"activity":{"id":"tool_90a653ed-f908-4fa7-a476-524b2adf9ad","name":"grep","status":"completed","summary":"grep: C:\\xampp\\htdocs\\cursor-mobile-bridge","detail":"","at":"2026-06-30T01:45:38.011Z"}},"at":1782783938011},{"event":"tool_activity","data":{"activity":{"id":"tool_b825d534-e5c4-4adf-82f0-1d8d87e266e","name":"glob","status":"completed","summary":"glob: ","detail":"","at":"2026-06-30T01:45:44.395Z"}},"at":1782783944395},{"event":"tool_activity","data":{"activity":{"id":"tool_273a678a-c1d8-4e3f-b60c-98e071e8ceb","name":"read","status":"completed","summary":"read: C:\\xampp\\htdocs\\xzonassite\\docs\\WHATSAPP_COLA_APROBACION_2026.md","detail":"","at":"2026-06-30T01:45:44.524Z"}},"at":1782783944524},{"event":"tool_activity","data":{"activity":{"id":"tool_49c499e8-f753-454d-8c49-b055dbd4126","name":"read","status":"completed","summary":"read: …e\\gestion-anuncios-anunciantes\\herramientas\\docs\\INDICE_HERRAMIENTAS_PANEL.md","detail":"","at":"2026-06-30T01:45:45.163Z"}},"at":1782783945163},{"event":"tool_activity","data":{"activity":{"id":"tool_e60c02d9-fb42-46fd-82f1-097fd6bc9fe","name":"edit","status":"running","summary":"edit: C:\\xampp\\htdocs\\xzonassite\\docs\\agent-knowledge\\XZONAS_SEO_Y_AGENTE_WHATSAPP.md","detail":"","at":"2026-06-30T01:45:55.452Z"}},"at":1782783955452},{"event":"text","data":{"chunk":"Creando el documento maestro de conocimiento y sincronizándolo en bridge, Serena y lab IA.\n"},"at":1782784004767},{"event":"tool_activity","data":{"activity":{"id":"tool_e60c02d9-fb42-46fd-82f1-097fd6bc9fe","name":"edit","status":"completed","summary":"edit: C:\\xampp\\htdocs\\xzonassite\\docs\\agent-knowledge\\XZONAS_SEO_Y_AGENTE_WHATSAPP.md","detail":"","at":"2026-06-30T01:46:44.717Z"}},"at":1782784004717},{"event":"file_change","data":{"sessionId":"cs-1782783846857-mk9kx4","change":{"id":"ch-1","path":"docs\\agent-knowledge\\XZONAS_SEO_Y_AGENTE_WHATSAPP.md","type":"edit","diffString":"--- /dev/null\n+++ b/C:\\xampp\\htdocs\\xzonassite\\docs\\agent-knowledge\\XZONAS_SEO_Y_AGENTE_WHATSAPP.md\n@@ -1 +1,265 @@\n+# xzonassite — SEO + Agente comercial WhatsApp (conocimiento agente)\n \n+> **project_id:** `xzonassite` · **RAG:** colección `xzonas_docs` · **plantilla lab:** `ops/multiagent-supervisor/config/agent_content_templates/xzonassite.json`  \n+> **Última ampliación:** 2026-06-30 · **Uso:** memoria persistente del agente por proyecto (Cursor, bridge móvil, lab IA Qdrant)\n+\n+---\n+\n+## Identidad del agente por proyecto\n+\n+| Capa | Ubicación | Rol |\n+|------|-----------|-----|\n+| **Cursor / Serena** | `.serena/memories/xzonassite_seo_whatsapp_agent_2026-06.md` + este archivo | Contexto inmediato en IDE |\n+| **Bridge móvil** | `.cursor-bridge/knowledge.json` + `cursor-mobile-bridge/data/project-knowledge/c-xampp-htdocs-xzonassite.json` | Fases y notas por chat iPhone |\n+| **Lab IA (servidor)** | Qdrant `xzonas_docs` vía `POST /api/rag/ingest` (`project_id: xzonassite`) | RAG en supervisor Ollama |\n+| **Plantilla multiagente** | `config/agent_content_templates/xzonassite.json` | Routing research/ops/growth/compliance/code |\n+| **Panel operador** | `gestion-anuncios-anunciantes/herramientas/panel-agent-hub.php` | Chat SeoAgent/Ops con mismo supervisor |\n+\n+**Regla:** un agente lógico por proyecto; en nuevos chats cargar primero memorias Serena + fases bridge + RAG `xzonassite`. No mezclar con `alimpiezas`, `royalbroker-berto`, etc.\n+\n+---\n+\n+## 1. SEO — arquitectura y prioridades\n+\n+### 1.1 Objetivo de negocio\n+\n+Portal de **anuncios eróticos locales en Valencia** (escorts, masajes, travestis…). SEO = captación orgánica de visitantes y anunciantes. Head term estratégico: **`putas valencia`** → URL canónica única **`/putas-valencia-valencia`** (no canibalizar con `/putas-valencia` → 301).\n+\n+### 1.2 Capas de routing\n+\n+| Capa | Archivo | Función |\n+|------|---------|---------|\n+| Router Apache | `.htaccess` (~1290 líneas) | HTTPS, 301/410, hubs, sitemaps, bloqueo docs/private |\n+| Hub SEO | `hub-seo-router.php` | Fallback si falta regla en prod; mapea slugs → PHP o plantilla dinámica |\n+| Filtros | `filter-page.php` | `/filtro/{slug}` |\n+| Landings estáticas | `seo-pages/`, `landings/` | Barrios, términos long-tail |\n+| Sitemaps | `sitemap-index.php`, `sitemap-*.php`, `robots-serve.php` | Indexación; anti-thin: `SITEMAP_LANDING_MIN_ANUNCIOS` (default 3) |\n+| Motor landings CMS | `includes/landing_page_engine.php`, SQLite en panel | Editorial P0 desde panel |\n+\n+### 1.3 Hubs SEO (ejemplos)\n+\n+Rutas tipo `/escorts-valencia`, `/escorts-*-valencia`, `/escorts-cerca-de-mi` → `hub-seo-router.php` o PHP dedicado en raíz (`escorts-valencia.php`, etc.). Fallbacks con SQL embebido si el PHP no está desplegado.\n+\n+### 1.4 APIs SEO (legacy raíz + CMS)\n+\n+- `api_seo_*.php`, `api_cms_seo*.php` — dashboard, auditoría, automatización\n+- `api_gsc_*.php`, `api_ga4_*.php` — Search Console, Analytics\n+- `api_indexing_multi_engine.php`, `includes/seo_indexing_helper.php` — IndexNow / multi-motor\n+- `api_internal_linking_auto.php`, `api_keyword_*.php` — enlazado y keywords\n+\n+### 1.5 Panel — herramientas SEO (operador, sin SSH)\n+\n+Ruta base: `gestion-anuncios-anunciantes/herramientas/`. Índice: `herramientas/docs/INDICE_HERRAMIENTAS_PANEL.md`.\n+\n+| Herramienta | Uso principal |\n+|-------------|---------------|\n+| **`seo-keyword-command-center.php`** | TOP 100 GSC, tiers P0/STRIKE/TOP10, editorial P0 «putas valencia», IndexNow |\n+| `seo-keyword-intelligence.php` | Inteligencia keywords + backend |\n+| `seo-panel-central.php` / `seo-comando-dashboard.php` | Vista central / dashboard |\n+| `seo-premium-suite.php` | Suite avanzada |\n+| `landing-manager.php` | CMS landings SQLite; delega a supervisor vía `SUPERVISOR_URL` |\n+| `portal-seo-editor.php` | Edición SEO portal |\n+| `seo-url-registry.php` / `landings-seo-registry.php` | Registro URLs |\n+| `seo-site-audit-panel.php` | Auditoría on-site |\n+| `seo-tracking-hub.php` | Seguimiento rankings |\n+| `seo-competitor-command-center.php` | Gap competencia |\n+| `infra-config-guardian.php` | robots/sitemaps/manifest + sonda prod |\n+| `geo-zones-hub.php` | Zonas + visitas + SEO local |\n+\n+**Datos GSC:** export MD en `gestion-anuncios-anunciantes/herramientas/data/seo/gsc_queries_valencia_export.md` — consumido por `includes/seo_top100_lib.php`.\n+\n+### 1.6 Políticas SEO obligatorias (agente)\n+\n+1. **Canónicas:** consolidar head terms; evitar duplicados thin.\n+2. **CWV:** CrUX 28 días reales; no optimizar solo Lighthouse local.\n+3. **Crons HTTP:** header `X-Cron-Token` o `Authorization: Bearer` (`includes/cron_gate.php`); **nunca** `?token=` en URL.\n+4. **Producción:** cambios que requieran datos live → herramienta panel + bloque `XZONAS_AGENT_REPORT`.\n+5. **Post-deploy:** sitemap en GSC, paginación landings, manifest PWA.\n+\n+### 1.7 Agente SEO en lab (`research`)\n+\n+- Template task: `seo-performance-audit` en `xzonassite.json`\n+- Chat panel: `panel-agent-hub.php` → agentes `research`, `seo-growth`, etc. vía supervisor `:8787`\n+- Portal lab: `ops/lab-ia-portal/xz-lab-console-9k2m/` — RAG + collab API\n+\n+### 1.8 P0 actual (2026-06)\n+\n+- Keyword: **putas valencia** (~pos 30, ~3274 imp/mes GSC)\n+- Acción: editorial en `/putas-valencia-valencia` (title, meta, H1, FAQ, 800+ palabras) desde Command Center\n+- `/putas-valencia` → 301 absoluto a canónica\n+\n+---\n+\n+## 2. Agente comercial WhatsApp — arquitectura\n+\n+### 2.1 Objetivo\n+\n+**Captación y respuesta comercial** a leads que escriben por WhatsApp. Agente LLM **`growth`** del supervisor. **Nunca** envío masivo ni primer contacto automático; **siempre** aprobación humana antes del envío al usuario.\n+\n+### 2.2 Flujo end-to-end\n+\n+```\n+Usuario WhatsApp\n+    → Baileys (ops/baileys-bridge/src/index.js)\n+    → POST supervisor /api/inbound/whatsapp  [agent: growth]\n+    → reply + delivery_policy.outbound_requires_operator_approval: true\n+    → POST api_whatsapp_queue_ingest.php  [MySQL pending]\n+    → Operador: whatsapp-outbound-queue.php  [Aprobar/Rechazar/Editar]\n+    → Poll worker Baileys: api_whatsapp_queue_poll.php  [approved → sending]\n+    → sock.sendMessage(remote_jid, reply_text)\n+    → POST api_whatsapp_queue_ack.php  [sent | failed]\n+```\n+\n+Documentación circuito: `docs/WHATSAPP_COLA_APROBACION_2026.md`.\n+\n+### 2.3 Componentes clave\n+\n+| Pieza | Ruta |\n+|-------|------|\n+| Bridge Node | `ops/baileys-bridge/` — Baileys + Express, puerto 3030, health `/health` |\n+| Supervisor webhook | `ops/multiagent-supervisor/app/main.py` → `@app.post(\"/api/inbound/whatsapp\")` |\n+| System prompt WA | `app/config.py` → `WHATSAPP_GROWTH_SYSTEM_PROMPT` o default captación |\n+| Cola MySQL | tabla `whatsapp_outbound_queue` — lib `whatsapp_outbound_queue_lib.php` |\n+| Ingest / Poll / Ack | `api_whatsapp_queue_ingest.php`, `_poll.php`, `_ack.php` |\n+| Panel ops | `api_whatsapp_queue_ops.php` + UI `whatsapp-outbound-queue.php` |\n+| Entrenamiento | `whatsapp-training-simulator.php`, `agent-captacion-sandbox.php` |\n+| Config contacto | `api_admin_whatsapp_contact_config.php` |\n+\n+### 2.4 System prompt comercial (default)\n+\n+```\n+Eres el agente de captación comercial de xzonasvalencia.com (portal adulto Valencia).\n+Responde en español, tono profesional y breve (estilo WhatsApp).\n+No garantices rankings ni ingresos. RGPD: no pidas datos innecesarios.\n+Si no sabes precios o condiciones exactas, ofrece pasar a un humano.\n+Política: nunca masivos; solo respuesta a entrante; envío final siempre con OK humano.\n+```\n+\n+Override: env `WHATSAPP_GROWTH_SYSTEM_PROMPT` en supervisor `.env`.\n+\n+### 2.5 Variables de entorno críticas\n+\n+**Sitio PHP (SiteGround / local):**\n+```env\n+WHATSAPP_QUEUE_API_TOKEN=<secreto_largo_compartido_bridge_php>\n+```\n+\n+**Bridge / Docker (`ops/multiagent-supervisor/.env`):**\n+```env\n+SUPERVISOR_WEBHOOK_URL=http://xzonas-multiagent:8787/api/inbound/whatsapp\n+SUPERVISOR_TOKEN=<dashboard_token>\n+WHATSAPP_QUEUE_API_TOKEN=<mismo_que_php>\n+SITE_PUBLIC_BASE=https://xzonasvalencia.com\n+WHATSAPP_QUEUE_POLL_INTERVAL_MS=2500\n+```\n+\n+**Supervisor:**\n+```env\n+WHATSAPP_INBOUND_TOKEN=   # opcional; si vacío usa SUPERVISOR_DASHBOARD_TOKEN\n+WHATSAPP_GROWTH_SYSTEM_PROMPT=  # opcional override\n+```\n+\n+### 2.6 Estados cola\n+\n+`pending` → (operador) → `approved` → (poll) → `sending` → (ack) → `sent` | `failed`  \n+También: `rejected`. Recuperación: `requeue_stale` para `sending` colgados >15 min.\n+\n+### 2.7 Entrenamiento y sandbox\n+\n+| Herramienta | Función |\n+|-------------|---------|\n+| `panel-agent-hub.php` | Chat multiagente panel (mismo supervisor que WA) |\n+| `agent-captacion-sandbox.php` | Simulador captación multiturno → supervisor |\n+| `whatsapp-training-simulator.php` | Entrenamiento respuestas WA |\n+| `agent-training-hub.php` | Hub entrenamiento general |\n+\n+Roles sandbox: `growth | research | ops | project` — backend `agent-captacion-sandbox-backend.php`.\n+\n+### 2.8 Despliegue bridge\n+\n+```bash\n+# Desde ops/multiagent-supervisor (tras F4 operador)\n+docker compose -f docker-compose.FULL.yml up -d --build xzonas-baileys\n+docker logs -f xzonas-baileys   # QR primera vez\n+curl http://localhost:3030/health\n+```\n+\n+SiteGround **no** ejecuta Node persistente: bridge vive en **EQUIPITELLO / Docker lab**, PHP cola en **prod HTTPS**.\n+\n+### 2.9 Compliance comercial\n+\n+- Solo responder a **mensaje entrante** (usuario escribió primero).\n+- Bridge ignora grupos (`@g.us`) y `status@broadcast`.\n+- Histórico sesión en supervisor: últimos 40 turnos por teléfono (`session_key`).\n+- GDPR: no solicitar datos sensibles innecesarios; escalar a humano en dudas de precio/legal.\n+\n+---\n+\n+## 3. Integración lab IA (servidor)\n+\n+| Recurso | Valor xzonassite |\n+|---------|------------------|\n+| `project_id` | `xzonassite` |\n+| Colección Qdrant | `xzonas_docs` (~98k vectores) |\n+| `source_root` | `C:/xampp/htdocs/xzonassite` |\n+| `docs_subdirs` ingest | `docs`, `ops/multiagent-supervisor/docs` |\n+| Agentes | research, ops, growth, compliance, code |\n+| Portal HACS | `http://100.78.198.98:9080/ops/lab-ia-portal/xz-lab-console-9k2m/` |\n+| Supervisor API | `POST /api/agents/chat`, `POST /api/rag/ingest`, `GET /api/rag/status` |\n+| Auth | `X-Supervisor-Token` |\n+\n+**Re-ingestar tras ampliar conocimiento:**\n+```bash\n+curl -X POST http://192.168.1.16:8787/api/rag/ingest \\\n+  -H \"X-Supervisor-Token: $TOKEN\" \\\n+  -H \"Content-Type: application/json\" \\\n+  -d '{\"project_id\":\"xzonassite\",\"paths\":[\"docs/agent-knowledge\"]}'\n+```\n+\n+---\n+\n+## 4. Prompts reutilizables (copy-paste)\n+\n+### SEO P0 editorial\n+```\n+[SEO P0] En xzonassite, aplicar editorial «putas valencia» en /putas-valencia-valencia.\n+Usa seo-keyword-command-center.php y landing-manager. Verifica 301 desde /putas-valencia.\n+No tocar .htaccess masivo; solo reglas relacionadas. Post-deploy: GSC + IndexNow STRIKE.\n+Prod: herramienta panel + XZONAS_AGENT_REPORT.\n+```\n+\n+### Auditoría SEO\n+```\n+[SEO audit] Revisa infra-config-guardian + seo-site-audit-panel.\n+Prioriza: canónicas, thin landings (SITEMAP_LANDING_MIN_ANUNCIOS), INP home visitante.\n+Entrega P0/P1/P2 con archivos concretos. composer qa:full solo si tocas PHP.\n+```\n+\n+### WhatsApp cola\n+```\n+[WA cola] Diagnosticar flujo ingest→approve→poll→ack.\n+Archivos: baileys-bridge/src/index.js, whatsapp_outbound_queue_lib.php, whatsapp-outbound-queue.php.\n+Verificar WHATSAPP_QUEUE_API_TOKEN idéntico PHP/Docker. Logs bridge: docker logs --tail 80 xzonas-baileys.\n+```\n+\n+### Entrenar agente growth\n+```\n+[WA training] Simular conversación captación en agent-captacion-sandbox (role=growth).\n+Validar tono RGPD, sin promesas de ranking. Supervisor local :8787, agent growth + RAG xzonassite.\n+```\n+\n+---\n+\n+## 5. Checklist agente — nuevo chat xzonassite\n+\n+1. Leer `.serena/memories/xzonassite_seo_whatsapp_agent_2026-06.md`\n+2. Consultar `.cursor-bridge/knowledge.json` fases `seo-deep`, `whatsapp-agent`\n+3. Si lab activo: `GET /api/rag/status` → proyecto `xzonas_docs`\n+4. Tareas SEO → `AGENTS.md` + `seo-keyword-command-center.php`\n+5. Tareas WA → `docs/WHATSAPP_COLA_APROBACION_2026.md`\n+6. Prod SiteGround → **solo UI panel**, nunca SSH\n+7. No grep recursivo en `vendor/`, `node_modules/`, `Core/`, `Dinamic/`\n+\n+---\n+\n+*Documento vivo — ampliar en cada sesión profunda; re-ingestar a Qdrant cuando crezca significativamente.*","diffHtml":"<div class=\"diff-colored\"><div class=\"diff-line diff-meta\">--- /dev/null</div><div class=\"diff-line diff-meta\">+++ b/C:\\xampp\\htdocs\\xzonassite\\docs\\agent-knowledge\\XZONAS_SEO_Y_AGENTE_WHATSAPP.md</div><div class=\"diff-line diff-hunk\">@@ -1 +1,265 @@</div><div class=\"diff-line diff-add\">+# xzonassite — SEO + Agente comercial WhatsApp (conocimiento agente)</div><div class=\"diff-line diff-ctx\"> </div><div class=\"diff-line diff-add\">+&gt; **project_id:** `xzonassite` · **RAG:** colección `xzonas_docs` · **plantilla lab:** `ops/multiagent-supervisor/config/agent_content_templates/xzonassite.json`  </div><div class=\"diff-line diff-add\">+&gt; **Última ampliación:** 2026-06-30 · **Uso:** memoria persistente del agente por proyecto (Cursor, bridge móvil, lab IA Qdrant)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+---</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+## Identidad del agente por proyecto</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+| Capa | Ubicación | Rol |</div><div class=\"diff-line diff-add\">+|------|-----------|-----|</div><div class=\"diff-line diff-add\">+| **Cursor / Serena** | `.serena/memories/xzonassite_seo_whatsapp_agent_2026-06.md` + este archivo | Contexto inmediato en IDE |</div><div class=\"diff-line diff-add\">+| **Bridge móvil** | `.cursor-bridge/knowledge.json` + `cursor-mobile-bridge/data/project-knowledge/c-xampp-htdocs-xzonassite.json` | Fases y notas por chat iPhone |</div><div class=\"diff-line diff-add\">+| **Lab IA (servidor)** | Qdrant `xzonas_docs` vía `POST /api/rag/ingest` (`project_id: xzonassite`) | RAG en supervisor Ollama |</div><div class=\"diff-line diff-add\">+| **Plantilla multiagente** | `config/agent_content_templates/xzonassite.json` | Routing research/ops/growth/compliance/code |</div><div class=\"diff-line diff-add\">+| **Panel operador** | `gestion-anuncios-anunciantes/herramientas/panel-agent-hub.php` | Chat SeoAgent/Ops con mismo supervisor |</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+**Regla:** un agente lógico por proyecto; en nuevos chats cargar primero memorias Serena + fases bridge + RAG `xzonassite`. No mezclar con `alimpiezas`, `royalbroker-berto`, etc.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+---</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+## 1. SEO — arquitectura y prioridades</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.1 Objetivo de negocio</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+Portal de **anuncios eróticos locales en Valencia** (escorts, masajes, travestis…). SEO = captación orgánica de visitantes y anunciantes. Head term estratégico: **`putas valencia`** → URL canónica única **`/putas-valencia-valencia`** (no canibalizar con `/putas-valencia` → 301).</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.2 Capas de routing</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+| Capa | Archivo | Función |</div><div class=\"diff-line diff-add\">+|------|---------|---------|</div><div class=\"diff-line diff-add\">+| Router Apache | `.htaccess` (~1290 líneas) | HTTPS, 301/410, hubs, sitemaps, bloqueo docs/private |</div><div class=\"diff-line diff-add\">+| Hub SEO | `hub-seo-router.php` | Fallback si falta regla en prod; mapea slugs → PHP o plantilla dinámica |</div><div class=\"diff-line diff-add\">+| Filtros | `filter-page.php` | `/filtro/{slug}` |</div><div class=\"diff-line diff-add\">+| Landings estáticas | `seo-pages/`, `landings/` | Barrios, términos long-tail |</div><div class=\"diff-line diff-add\">+| Sitemaps | `sitemap-index.php`, `sitemap-*.php`, `robots-serve.php` | Indexación; anti-thin: `SITEMAP_LANDING_MIN_ANUNCIOS` (default 3) |</div><div class=\"diff-line diff-add\">+| Motor landings CMS | `includes/landing_page_engine.php`, SQLite en panel | Editorial P0 desde panel |</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.3 Hubs SEO (ejemplos)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+Rutas tipo `/escorts-valencia`, `/escorts-*-valencia`, `/escorts-cerca-de-mi` → `hub-seo-router.php` o PHP dedicado en raíz (`escorts-valencia.php`, etc.). Fallbacks con SQL embebido si el PHP no está desplegado.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.4 APIs SEO (legacy raíz + CMS)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+- `api_seo_*.php`, `api_cms_seo*.php` — dashboard, auditoría, automatización</div><div class=\"diff-line diff-add\">+- `api_gsc_*.php`, `api_ga4_*.php` — Search Console, Analytics</div><div class=\"diff-line diff-add\">+- `api_indexing_multi_engine.php`, `includes/seo_indexing_helper.php` — IndexNow / multi-motor</div><div class=\"diff-line diff-add\">+- `api_internal_linking_auto.php`, `api_keyword_*.php` — enlazado y keywords</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.5 Panel — herramientas SEO (operador, sin SSH)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+Ruta base: `gestion-anuncios-anunciantes/herramientas/`. Índice: `herramientas/docs/INDICE_HERRAMIENTAS_PANEL.md`.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+| Herramienta | Uso principal |</div><div class=\"diff-line diff-add\">+|-------------|---------------|</div><div class=\"diff-line diff-add\">+| **`seo-keyword-command-center.php`** | TOP 100 GSC, tiers P0/STRIKE/TOP10, editorial P0 «putas valencia», IndexNow |</div><div class=\"diff-line diff-add\">+| `seo-keyword-intelligence.php` | Inteligencia keywords + backend |</div><div class=\"diff-line diff-add\">+| `seo-panel-central.php` / `seo-comando-dashboard.php` | Vista central / dashboard |</div><div class=\"diff-line diff-add\">+| `seo-premium-suite.php` | Suite avanzada |</div><div class=\"diff-line diff-add\">+| `landing-manager.php` | CMS landings SQLite; delega a supervisor vía `SUPERVISOR_URL` |</div><div class=\"diff-line diff-add\">+| `portal-seo-editor.php` | Edición SEO portal |</div><div class=\"diff-line diff-add\">+| `seo-url-registry.php` / `landings-seo-registry.php` | Registro URLs |</div><div class=\"diff-line diff-add\">+| `seo-site-audit-panel.php` | Auditoría on-site |</div><div class=\"diff-line diff-add\">+| `seo-tracking-hub.php` | Seguimiento rankings |</div><div class=\"diff-line diff-add\">+| `seo-competitor-command-center.php` | Gap competencia |</div><div class=\"diff-line diff-add\">+| `infra-config-guardian.php` | robots/sitemaps/manifest + sonda prod |</div><div class=\"diff-line diff-add\">+| `geo-zones-hub.php` | Zonas + visitas + SEO local |</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+**Datos GSC:** export MD en `gestion-anuncios-anunciantes/herramientas/data/seo/gsc_queries_valencia_export.md` — consumido por `includes/seo_top100_lib.php`.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.6 Políticas SEO obligatorias (agente)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+1. **Canónicas:** consolidar head terms; evitar duplicados thin.</div><div class=\"diff-line diff-add\">+2. **CWV:** CrUX 28 días reales; no optimizar solo Lighthouse local.</div><div class=\"diff-line diff-add\">+3. **Crons HTTP:** header `X-Cron-Token` o `Authorization: Bearer` (`includes/cron_gate.php`); **nunca** `?token=` en URL.</div><div class=\"diff-line diff-add\">+4. **Producción:** cambios que requieran datos live → herramienta panel + bloque `XZONAS_AGENT_REPORT`.</div><div class=\"diff-line diff-add\">+5. **Post-deploy:** sitemap en GSC, paginación landings, manifest PWA.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.7 Agente SEO en lab (`research`)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+- Template task: `seo-performance-audit` en `xzonassite.json`</div><div class=\"diff-line diff-add\">+- Chat panel: `panel-agent-hub.php` → agentes `research`, `seo-growth`, etc. vía supervisor `:8787`</div><div class=\"diff-line diff-add\">+- Portal lab: `ops/lab-ia-portal/xz-lab-console-9k2m/` — RAG + collab API</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 1.8 P0 actual (2026-06)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+- Keyword: **putas valencia** (~pos 30, ~3274 imp/mes GSC)</div><div class=\"diff-line diff-add\">+- Acción: editorial en `/putas-valencia-valencia` (title, meta, H1, FAQ, 800+ palabras) desde Command Center</div><div class=\"diff-line diff-add\">+- `/putas-valencia` → 301 absoluto a canónica</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+---</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+## 2. Agente comercial WhatsApp — arquitectura</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.1 Objetivo</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+**Captación y respuesta comercial** a leads que escriben por WhatsApp. Agente LLM **`growth`** del supervisor. **Nunca** envío masivo ni primer contacto automático; **siempre** aprobación humana antes del envío al usuario.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.2 Flujo end-to-end</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+Usuario WhatsApp</div><div class=\"diff-line diff-add\">+    → Baileys (ops/baileys-bridge/src/index.js)</div><div class=\"diff-line diff-add\">+    → POST supervisor /api/inbound/whatsapp  [agent: growth]</div><div class=\"diff-line diff-add\">+    → reply + delivery_policy.outbound_requires_operator_approval: true</div><div class=\"diff-line diff-add\">+    → POST api_whatsapp_queue_ingest.php  [MySQL pending]</div><div class=\"diff-line diff-add\">+    → Operador: whatsapp-outbound-queue.php  [Aprobar/Rechazar/Editar]</div><div class=\"diff-line diff-add\">+    → Poll worker Baileys: api_whatsapp_queue_poll.php  [approved → sending]</div><div class=\"diff-line diff-add\">+    → sock.sendMessage(remote_jid, reply_text)</div><div class=\"diff-line diff-add\">+    → POST api_whatsapp_queue_ack.php  [sent | failed]</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+Documentación circuito: `docs/WHATSAPP_COLA_APROBACION_2026.md`.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.3 Componentes clave</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+| Pieza | Ruta |</div><div class=\"diff-line diff-add\">+|-------|------|</div><div class=\"diff-line diff-add\">+| Bridge Node | `ops/baileys-bridge/` — Baileys + Express, puerto 3030, health `/health` |</div><div class=\"diff-line diff-add\">+| Supervisor webhook | `ops/multiagent-supervisor/app/main.py` → `@app.post(\"/api/inbound/whatsapp\")` |</div><div class=\"diff-line diff-add\">+| System prompt WA | `app/config.py` → `WHATSAPP_GROWTH_SYSTEM_PROMPT` o default captación |</div><div class=\"diff-line diff-add\">+| Cola MySQL | tabla `whatsapp_outbound_queue` — lib `whatsapp_outbound_queue_lib.php` |</div><div class=\"diff-line diff-add\">+| Ingest / Poll / Ack | `api_whatsapp_queue_ingest.php`, `_poll.php`, `_ack.php` |</div><div class=\"diff-line diff-add\">+| Panel ops | `api_whatsapp_queue_ops.php` + UI `whatsapp-outbound-queue.php` |</div><div class=\"diff-line diff-add\">+| Entrenamiento | `whatsapp-training-simulator.php`, `agent-captacion-sandbox.php` |</div><div class=\"diff-line diff-add\">+| Config contacto | `api_admin_whatsapp_contact_config.php` |</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.4 System prompt comercial (default)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+Eres el agente de captación comercial de xzonasvalencia.com (portal adulto Valencia).</div><div class=\"diff-line diff-add\">+Responde en español, tono profesional y breve (estilo WhatsApp).</div><div class=\"diff-line diff-add\">+No garantices rankings ni ingresos. RGPD: no pidas datos innecesarios.</div><div class=\"diff-line diff-add\">+Si no sabes precios o condiciones exactas, ofrece pasar a un humano.</div><div class=\"diff-line diff-add\">+Política: nunca masivos; solo respuesta a entrante; envío final siempre con OK humano.</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+Override: env `WHATSAPP_GROWTH_SYSTEM_PROMPT` en supervisor `.env`.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.5 Variables de entorno críticas</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+**Sitio PHP (SiteGround / local):**</div><div class=\"diff-line diff-add\">+```env</div><div class=\"diff-line diff-add\">+WHATSAPP_QUEUE_API_TOKEN=&lt;secreto_largo_compartido_bridge_php&gt;</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+**Bridge / Docker (`ops/multiagent-supervisor/.env`):**</div><div class=\"diff-line diff-add\">+```env</div><div class=\"diff-line diff-add\">+SUPERVISOR_WEBHOOK_URL=http://xzonas-multiagent:8787/api/inbound/whatsapp</div><div class=\"diff-line diff-add\">+SUPERVISOR_TOKEN=&lt;dashboard_token&gt;</div><div class=\"diff-line diff-add\">+WHATSAPP_QUEUE_API_TOKEN=&lt;mismo_que_php&gt;</div><div class=\"diff-line diff-add\">+SITE_PUBLIC_BASE=https://xzonasvalencia.com</div><div class=\"diff-line diff-add\">+WHATSAPP_QUEUE_POLL_INTERVAL_MS=2500</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+**Supervisor:**</div><div class=\"diff-line diff-add\">+```env</div><div class=\"diff-line diff-add\">+WHATSAPP_INBOUND_TOKEN=   # opcional; si vacío usa SUPERVISOR_DASHBOARD_TOKEN</div><div class=\"diff-line diff-add\">+WHATSAPP_GROWTH_SYSTEM_PROMPT=  # opcional override</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.6 Estados cola</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+`pending` → (operador) → `approved` → (poll) → `sending` → (ack) → `sent` | `failed`  </div><div class=\"diff-line diff-add\">+También: `rejected`. Recuperación: `requeue_stale` para `sending` colgados &gt;15 min.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.7 Entrenamiento y sandbox</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+| Herramienta | Función |</div><div class=\"diff-line diff-add\">+|-------------|---------|</div><div class=\"diff-line diff-add\">+| `panel-agent-hub.php` | Chat multiagente panel (mismo supervisor que WA) |</div><div class=\"diff-line diff-add\">+| `agent-captacion-sandbox.php` | Simulador captación multiturno → supervisor |</div><div class=\"diff-line diff-add\">+| `whatsapp-training-simulator.php` | Entrenamiento respuestas WA |</div><div class=\"diff-line diff-add\">+| `agent-training-hub.php` | Hub entrenamiento general |</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+Roles sandbox: `growth | research | ops | project` — backend `agent-captacion-sandbox-backend.php`.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.8 Despliegue bridge</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+```bash</div><div class=\"diff-line diff-add\">+# Desde ops/multiagent-supervisor (tras F4 operador)</div><div class=\"diff-line diff-add\">+docker compose -f docker-compose.FULL.yml up -d --build xzonas-baileys</div><div class=\"diff-line diff-add\">+docker logs -f xzonas-baileys   # QR primera vez</div><div class=\"diff-line diff-add\">+curl http://localhost:3030/health</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+SiteGround **no** ejecuta Node persistente: bridge vive en **EQUIPITELLO / Docker lab**, PHP cola en **prod HTTPS**.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### 2.9 Compliance comercial</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+- Solo responder a **mensaje entrante** (usuario escribió primero).</div><div class=\"diff-line diff-add\">+- Bridge ignora grupos (`@g.us`) y `status@broadcast`.</div><div class=\"diff-line diff-add\">+- Histórico sesión en supervisor: últimos 40 turnos por teléfono (`session_key`).</div><div class=\"diff-line diff-add\">+- GDPR: no solicitar datos sensibles innecesarios; escalar a humano en dudas de precio/legal.</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+---</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+## 3. Integración lab IA (servidor)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+| Recurso | Valor xzonassite |</div><div class=\"diff-line diff-add\">+|---------|------------------|</div><div class=\"diff-line diff-add\">+| `project_id` | `xzonassite` |</div><div class=\"diff-line diff-add\">+| Colección Qdrant | `xzonas_docs` (~98k vectores) |</div><div class=\"diff-line diff-add\">+| `source_root` | `C:/xampp/htdocs/xzonassite` |</div><div class=\"diff-line diff-add\">+| `docs_subdirs` ingest | `docs`, `ops/multiagent-supervisor/docs` |</div><div class=\"diff-line diff-add\">+| Agentes | research, ops, growth, compliance, code |</div><div class=\"diff-line diff-add\">+| Portal HACS | `http://100.78.198.98:9080/ops/lab-ia-portal/xz-lab-console-9k2m/` |</div><div class=\"diff-line diff-add\">+| Supervisor API | `POST /api/agents/chat`, `POST /api/rag/ingest`, `GET /api/rag/status` |</div><div class=\"diff-line diff-add\">+| Auth | `X-Supervisor-Token` |</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+**Re-ingestar tras ampliar conocimiento:**</div><div class=\"diff-line diff-add\">+```bash</div><div class=\"diff-line diff-add\">+curl -X POST http://192.168.1.16:8787/api/rag/ingest \\</div><div class=\"diff-line diff-add\">+  -H \"X-Supervisor-Token: $TOKEN\" \\</div><div class=\"diff-line diff-add\">+  -H \"Content-Type: application/json\" \\</div><div class=\"diff-line diff-add\">+  -d '{\"project_id\":\"xzonassite\",\"paths\":[\"docs/agent-knowledge\"]}'</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+---</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+## 4. Prompts reutilizables (copy-paste)</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### SEO P0 editorial</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+[SEO P0] En xzonassite, aplicar editorial «putas valencia» en /putas-valencia-valencia.</div><div class=\"diff-line diff-add\">+Usa seo-keyword-command-center.php y landing-manager. Verifica 301 desde /putas-valencia.</div><div class=\"diff-line diff-add\">+No tocar .htaccess masivo; solo reglas relacionadas. Post-deploy: GSC + IndexNow STRIKE.</div><div class=\"diff-line diff-add\">+Prod: herramienta panel + XZONAS_AGENT_REPORT.</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### Auditoría SEO</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+[SEO audit] Revisa infra-config-guardian + seo-site-audit-panel.</div><div class=\"diff-line diff-add\">+Prioriza: canónicas, thin landings (SITEMAP_LANDING_MIN_ANUNCIOS), INP home visitante.</div><div class=\"diff-line diff-add\">+Entrega P0/P1/P2 con archivos concretos. composer qa:full solo si tocas PHP.</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### WhatsApp cola</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+[WA cola] Diagnosticar flujo ingest→approve→poll→ack.</div><div class=\"diff-line diff-add\">+Archivos: baileys-bridge/src/index.js, whatsapp_outbound_queue_lib.php, whatsapp-outbound-queue.php.</div><div class=\"diff-line diff-add\">+Verificar WHATSAPP_QUEUE_API_TOKEN idéntico PHP/Docker. Logs bridge: docker logs --tail 80 xzonas-baileys.</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+### Entrenar agente growth</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+[WA training] Simular conversación captación en agent-captacion-sandbox (role=growth).</div><div class=\"diff-line diff-add\">+Validar tono RGPD, sin promesas de ranking. Supervisor local :8787, agent growth + RAG xzonassite.</div><div class=\"diff-line diff-add\">+```</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+---</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+## 5. Checklist agente — nuevo chat xzonassite</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+1. Leer `.serena/memories/xzonassite_seo_whatsapp_agent_2026-06.md`</div><div class=\"diff-line diff-add\">+2. Consultar `.cursor-bridge/knowledge.json` fases `seo-deep`, `whatsapp-agent`</div><div class=\"diff-line diff-add\">+3. Si lab activo: `GET /api/rag/status` → proyecto `xzonas_docs`</div><div class=\"diff-line diff-add\">+4. Tareas SEO → `AGENTS.md` + `seo-keyword-command-center.php`</div><div class=\"diff-line diff-add\">+5. Tareas WA → `docs/WHATSAPP_COLA_APROBACION_2026.md`</div><div class=\"diff-line diff-add\">+6. Prod SiteGround → **solo UI panel**, nunca SSH</div><div class=\"diff-line diff-add\">+7. No grep recursivo en `vendor/`, `node_modules/`, `Core/`, `Dinamic/`</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+---</div><div class=\"diff-line diff-add\">+</div><div class=\"diff-line diff-add\">+*Documento vivo — ampliar en cada sesión profunda; re-ingestar a Qdrant cuando crezca significativamente.*</div></div>","linesAdded":264,"linesRemoved":0,"status":"pending"},"pending":1},"at":1782784004718},{"event":"status","data":{"text":"Límite de 80 herramientas alcanzado — finalizando con lo obtenido."},"at":1782784004718},{"event":"done","data":{"ok":true,"bridgeSessionId":"bs-1782527498115-0s4zbk","agentId":"agent-7b5a77da-da58-4aa0-93c0-ca919b3b4894","runId":"run-19684abc-b8fe-4da8-a84c-18d283e0edea","status":"cancelled","result":"","changeSessionId":"cs-1782783846857-mk9kx4","pendingChanges":1,"changes":[{"id":"ch-1","callId":"tool_e60c02d9-fb42-46fd-82f1-097fd6bc9fe","path":"docs\\agent-knowledge\\XZONAS_SEO_Y_AGENTE_WHATSAPP.md","type":"edit","diffString":"--- /dev/null\n+++ b/C:\\xampp\\htdocs\\xzonassite\\docs\\agent-knowledge\\XZONAS_SEO_Y_AGENTE_WHATSAPP.md\n@@ -1 +1,265 @@\n+# xzonassite — SEO + Agente comercial WhatsApp (conocimiento agente)\n \n+> **project_id:** `xzonassite` · **RAG:** colección `xzonas_docs` · **plantilla lab:** `ops/multiagent-supervisor/config/agent_content_templates/xzonassite.json`  \n+> **Última ampliación:** 2026-06-30 · **Uso:** memoria persistente del agente por proyecto (Cursor, bridge móvil, lab IA Qdrant)\n+\n+---\n+\n+## Identidad del agente por proyecto\n+\n+| Capa | Ubicación | Rol |\n+|------|-----------|-----|\n+| **Cursor / Serena** | `.serena/memories/xzonassite_seo_whatsapp_agent_2026-06.md` + este archivo | Contexto inmediato en IDE |\n+| **Bridge móvil** | `.cursor-bridge/knowledge.json` + `cursor-mobile-bridge/data/project-knowledge/c-xampp-htdocs-xzonassite.json` | Fases y notas por chat iPhone |\n+| **Lab IA (servidor)** | Qdrant `xzonas_docs` vía `POST /api/rag/ingest` (`project_id: xzonassite`) | RAG en supervisor Ollama |\n+| **Plantilla multiagente** | `config/agent_content_templates/xzonassite.json` | Routing research/ops/growth/compliance/code |\n+| **Panel operador** | `gestion-anuncios-anunciantes/herramientas/panel-agent-hub.php` | Chat SeoAgent/Ops con mismo supervisor |\n+\n+**Regla:** un agente lógico por proyecto; en nuevos chats cargar primero memorias Serena + fases bridge + RAG `xzonassite`. No mezclar con `alimpiezas`, `royalbroker-berto`, etc.\n+\n+---\n+\n+## 1. SEO — arquitectura y prioridades\n+\n+### 1.1 Objetivo de negocio\n+\n+Portal de **anuncios eróticos locales en Valencia** (escorts, masajes, travestis…). SEO = captación orgánica de visitantes y anunciantes. Head term estratégico: **`putas valencia`** → URL canónica única **`/putas-valencia-valencia`** (no canibalizar con `/putas-valencia` → 301).\n+\n+### 1.2 Capas de routing\n+\n+| Capa | Archivo | Función |\n+|------|---------|---------|\n+| Router Apache | `.htaccess` (~1290 líneas) | HTTPS, 301/410, hubs, sitemaps, bloqueo docs/private |\n+| Hub SEO | `hub-seo-router.php` | Fallback si falta regla en prod; mapea slugs → PHP o plantilla dinámica |\n+| Filtros | `filter-page.php` | `/filtro/{slug}` |\n+| Landings estáticas | `seo-pages/`, `landings/` | Barrios, términos long-tail |\n+| Sitemaps | `sitemap-index.php`, `sitemap-*.php`, `robots-serve.php` | Indexación; anti-thin: `SITEMAP_LANDING_MIN_ANUNCIOS` (default 3) |\n+| Motor landings CMS | `includes/landing_page_engine.php`, SQLite en panel | Editorial P0 desde panel |\n+\n+### 1.3 Hubs SEO (ejemplos)\n+\n+Rutas tipo `/escorts-valencia`, `/escorts-*-valencia`, `/escorts-cerca-de-mi` → `hub-seo-router.php` o PHP dedicado en raíz (`escorts-valencia.php`, etc.). Fallbacks con SQL embebido si el PHP no está desplegado.\n+\n+### 1.4 APIs SEO (legacy raíz + CMS)\n+\n+- `api_seo_*.php`, `api_cms_seo*.php` — dashboard, auditoría, automatización\n+- `api_gsc_*.php`, `api_ga4_*.php` — Search Console, Analytics\n+- `api_indexing_multi_engine.php`, `includes/seo_indexing_helper.php` — IndexNow / multi-motor\n+- `api_internal_linking_auto.php`, `api_keyword_*.php` — enlazado y keywords\n+\n+### 1.5 Panel — herramientas SEO (operador, sin SSH)\n+\n+Ruta base: `gestion-anuncios-anunciantes/herramientas/`. Índice: `herramientas/docs/INDICE_HERRAMIENTAS_PANEL.md`.\n+\n+| Herramienta | Uso principal |\n+|-------------|---------------|\n+| **`seo-keyword-command-center.php`** | TOP 100 GSC, tiers P0/STRIKE/TOP10, editorial P0 «putas valencia», IndexNow |\n+| `seo-keyword-intelligence.php` | Inteligencia keywords + backend |\n+| `seo-panel-central.php` / `seo-comando-dashboard.php` | Vista central / dashboard |\n+| `seo-premium-suite.php` | Suite avanzada |\n+| `landing-manager.php` | CMS landings SQLite; delega a supervisor vía `SUPERVISOR_URL` |\n+| `portal-seo-editor.php` | Edición SEO portal |\n+| `seo-url-registry.php` / `landings-seo-registry.php` | Registro URLs |\n+| `seo-site-audit-panel.php` | Auditoría on-site |\n+| `seo-tracking-hub.php` | Seguimiento rankings |\n+| `seo-competitor-command-center.php` | Gap competencia |\n+| `infra-config-guardian.php` | robots/sitemaps/manifest + sonda prod |\n+| `geo-zones-hub.php` | Zonas + visitas + SEO local |\n+\n+**Datos GSC:** export MD en `gestion-anuncios-anunciantes/herramientas/data/seo/gsc_queries_valencia_export.md` — consumido por `includes/seo_top100_lib.php`.\n+\n+### 1.6 Políticas SEO obligatorias (agente)\n+\n+1. **Canónicas:** consolidar head terms; evitar duplicados thin.\n+2. **CWV:** CrUX 28 días reales; no optimizar solo Lighthouse local.\n+3. **Crons HTTP:** header `X-Cron-Token` o `Authorization: Bearer` (`includes/cron_gate.php`); **nunca** `?token=` en URL.\n+4. **Producción:** cambios que requieran datos live → herramienta panel + bloque `XZONAS_AGENT_REPORT`.\n+5. **Post-deploy:** sitemap en GSC, paginación landings, manifest PWA.\n+\n+### 1.7 Agente SEO en lab (`research`)\n+\n+- Template task: `seo-performance-audit` en `xzonassite.json`\n+- Chat panel: `panel-agent-hub.php` → agentes `research`, `seo-growth`, etc. vía supervisor `:8787`\n+- Portal lab: `ops/lab-ia-portal/xz-lab-console-9k2m/` — RAG + collab API\n+\n+### 1.8 P0 actual (2026-06)\n+\n+- Keyword: **putas valencia** (~pos 30, ~3274 imp/mes GSC)\n+- Acción: editorial en `/putas-valencia-valencia` (title, meta, H1, FAQ, 800+ palabras) desde Command Center\n+- `/putas-valencia` → 301 absoluto a canónica\n+\n+---\n+\n+## 2. Agente comercial WhatsApp — arquitectura\n+\n+### 2.1 Objetivo\n+\n+**Captación y respuesta comercial** a leads que escriben por WhatsApp. Agente LLM **`growth`** del supervisor. **Nunca** envío masivo ni primer contacto automático; **siempre** aprobación humana antes del envío al usuario.\n+\n+### 2.2 Flujo end-to-end\n+\n+```\n+Usuario WhatsApp\n+    → Baileys (ops/baileys-bridge/src/index.js)\n+    → POST supervisor /api/inbound/whatsapp  [agent: growth]\n+    → reply + delivery_policy.outbound_requires_operator_approval: true\n+    → POST api_whatsapp_queue_ingest.php  [MySQL pending]\n+    → Operador: whatsapp-outbound-queue.php  [Aprobar/Rechazar/Editar]\n+    → Poll worker Baileys: api_whatsapp_queue_poll.php  [approved → sending]\n+    → sock.sendMessage(remote_jid, reply_text)\n+    → POST api_whatsapp_queue_ack.php  [sent | failed]\n+```\n+\n+Documentación circuito: `docs/WHATSAPP_COLA_APROBACION_2026.md`.\n+\n+### 2.3 Componentes clave\n+\n+| Pieza | Ruta |\n+|-------|------|\n+| Bridge Node | `ops/baileys-bridge/` — Baileys + Express, puerto 3030, health `/health` |\n+| Supervisor webhook | `ops/multiagent-supervisor/app/main.py` → `@app.post(\"/api/inbound/whatsapp\")` |\n+| System prompt WA | `app/config.py` → `WHATSAPP_GROWTH_SYSTEM_PROMPT` o default captación |\n+| Cola MySQL | tabla `whatsapp_outbound_queue` — lib `whatsapp_outbound_queue_lib.php` |\n+| Ingest / Poll / Ack | `api_whatsapp_queue_ingest.php`, `_poll.php`, `_ack.php` |\n+| Panel ops | `api_whatsapp_queue_ops.php` + UI `whatsapp-outbound-queue.php` |\n+| Entrenamiento | `whatsapp-training-simulator.php`, `agent-captacion-sandbox.php` |\n+| Config contacto | `api_admin_whatsapp_contact_config.php` |\n+\n+### 2.4 System prompt comercial (default)\n+\n+```\n+Eres el agente de captación comercial de xzonasvalencia.com (portal adulto Valencia).\n+Responde en español, tono profesional y breve (estilo WhatsApp).\n+No garantices rankings ni ingresos. RGPD: no pidas datos innecesarios.\n+Si no sabes precios o condiciones exactas, ofrece pasar a un humano.\n+Política: nunca masivos; solo respuesta a entrante; envío final siempre con OK humano.\n+```\n+\n+Override: env `WHATSAPP_GROWTH_SYSTEM_PROMPT` en supervisor `.env`.\n+\n+### 2.5 Variables de entorno críticas\n+\n+**Sitio PHP (SiteGround / local):**\n+```env\n+WHATSAPP_QUEUE_API_TOKEN=<secreto_largo_compartido_bridge_php>\n+```\n+\n+**Bridge / Docker (`ops/multiagent-supervisor/.env`):**\n+```env\n+SUPERVISOR_WEBHOOK_URL=http://xzonas-multiagent:8787/api/inbound/whatsapp\n+SUPERVISOR_TOKEN=<dashboard_token>\n+WHATSAPP_QUEUE_API_TOKEN=<mismo_que_php>\n+SITE_PUBLIC_BASE=https://xzonasvalencia.com\n+WHATSAPP_QUEUE_POLL_INTERVAL_MS=2500\n+```\n+\n+**Supervisor:**\n+```env\n+WHATSAPP_INBOUND_TOKEN=   # opcional; si vacío usa SUPERVISOR_DASHBOARD_TOKEN\n+WHATSAPP_GROWTH_SYSTEM_PROMPT=  # opcional override\n+```\n+\n+### 2.6 Estados cola\n+\n+`pending` → (operador) → `approved` → (poll) → `sending` → (ack) → `sent` | `failed`  \n+También: `rejected`. Recuperación: `requeue_stale` para `sending` colgados >15 min.\n+\n+### 2.7 Entrenamiento y sandbox\n+\n+| Herramienta | Función |\n+|-------------|---------|\n+| `panel-agent-hub.php` | Chat multiagente panel (mismo supervisor que WA) |\n+| `agent-captacion-sandbox.php` | Simulador captación multiturno → supervisor |\n+| `whatsapp-training-simulator.php` | Entrenamiento respuestas WA |\n+| `agent-training-hub.php` | Hub entrenamiento general |\n+\n+Roles sandbox: `growth | research | ops | project` — backend `agent-captacion-sandbox-backend.php`.\n+\n+### 2.8 Despliegue bridge\n+\n+```bash\n+# Desde ops/multiagent-supervisor (tras F4 operador)\n+docker compose -f docker-compose.FULL.yml up -d --build xzonas-baileys\n+docker logs -f xzonas-baileys   # QR primera vez\n+curl http://localhost:3030/health\n+```\n+\n+SiteGround **no** ejecuta Node persistente: bridge vive en **EQUIPITELLO / Docker lab**, PHP cola en **prod HTTPS**.\n+\n+### 2.9 Compliance comercial\n+\n+- Solo responder a **mensaje entrante** (usuario escribió primero).\n+- Bridge ignora grupos (`@g.us`) y `status@broadcast`.\n+- Histórico sesión en supervisor: últimos 40 turnos por teléfono (`session_key`).\n+- GDPR: no solicitar datos sensibles innecesarios; escalar a humano en dudas de precio/legal.\n+\n+---\n+\n+## 3. Integración lab IA (servidor)\n+\n+| Recurso | Valor xzonassite |\n+|---------|------------------|\n+| `project_id` | `xzonassite` |\n+| Colección Qdrant | `xzonas_docs` (~98k vectores) |\n+| `source_root` | `C:/xampp/htdocs/xzonassite` |\n+| `docs_subdirs` ingest | `docs`, `ops/multiagent-supervisor/docs` |\n+| Agentes | research, ops, growth, compliance, code |\n+| Portal HACS | `http://100.78.198.98:9080/ops/lab-ia-portal/xz-lab-console-9k2m/` |\n+| Supervisor API | `POST /api/agents/chat`, `POST /api/rag/ingest`, `GET /api/rag/status` |\n+| Auth | `X-Supervisor-Token` |\n+\n+**Re-ingestar tras ampliar conocimiento:**\n+```bash\n+curl -X POST http://192.168.1.16:8787/api/rag/ingest \\\n+  -H \"X-Supervisor-Token: $TOKEN\" \\\n+  -H \"Content-Type: application/json\" \\\n+  -d '{\"project_id\":\"xzonassite\",\"paths\":[\"docs/agent-knowledge\"]}'\n+```\n+\n+---\n+\n+## 4. Prompts reutilizables (copy-paste)\n+\n+### SEO P0 editorial\n+```\n+[SEO P0] En xzonassite, aplicar editorial «putas valencia» en /putas-valencia-valencia.\n+Usa seo-keyword-command-center.php y landing-manager. Verifica 301 desde /putas-valencia.\n+No tocar .htaccess masivo; solo reglas relacionadas. Post-deploy: GSC + IndexNow STRIKE.\n+Prod: herramienta panel + XZONAS_AGENT_REPORT.\n+```\n+\n+### Auditoría SEO\n+```\n+[SEO audit] Revisa infra-config-guardian + seo-site-audit-panel.\n+Prioriza: canónicas, thin landings (SITEMAP_LANDING_MIN_ANUNCIOS), INP home visitante.\n+Entrega P0/P1/P2 con archivos concretos. composer qa:full solo si tocas PHP.\n+```\n+\n+### WhatsApp cola\n+```\n+[WA cola] Diagnosticar flujo ingest→approve→poll→ack.\n+Archivos: baileys-bridge/src/index.js, whatsapp_outbound_queue_lib.php, whatsapp-outbound-queue.php.\n+Verificar WHATSAPP_QUEUE_API_TOKEN idéntico PHP/Docker. Logs bridge: docker logs --tail 80 xzonas-baileys.\n+```\n+\n+### Entrenar agente growth\n+```\n+[WA training] Simular conversación captación en agent-captacion-sandbox (role=growth).\n+Validar tono RGPD, sin promesas de ranking. Supervisor local :8787, agent growth + RAG xzonassite.\n+```\n+\n+---\n+\n+## 5. Checklist agente — nuevo chat xzonassite\n+\n+1. Leer `.serena/memories/xzonassite_seo_whatsapp_agent_2026-06.md`\n+2. Consultar `.cursor-bridge/knowledge.json` fases `seo-deep`, `whatsapp-agent`\n+3. Si lab activo: `GET /api/rag/status` → proyecto `xzonas_docs`\n+4. Tareas SEO → `AGENTS.md` + `seo-keyword-command-center.php`\n+5. Tareas WA → `docs/WHATSAPP_COLA_APROBACION_2026.md`\n+6. Prod SiteGround → **solo UI panel**, nunca SSH\n+7. No grep recursivo en `vendor/`, `node_modules/`, `Core/`, `Dinamic/`\n+\n+---\n+\n+*Documento vivo — ampliar en cada sesión profunda; re-ingestar a Qdrant cuando crezca significativamente.*","linesAdded":264,"linesRemoved":0,"status":"pending"}],"transcriptPath":null,"notifyTitle":"Agente terminado","notifyBody":"Continuando el hilo: reviso el transcript previo y la infraestructura del agente comercial WhatsApp y SEO para profundiz"},"at":1782784004761}]}
