• title:: Site club48sa
  • project-name:: Club 48 SA
  • primary-market:: ch
  • target-countries:: ch, fr
  • seo-scope:: national
  • agent-mode:: full_autonomy
  • summary
    • { “site_key”: “club48sa”, “counts”: { “memory_entries”: 13, “lessons”: 6, “sop_documents”: 2, “events”: 28, “observations”: 69, “outcomes”: 0, “learning_sessions”: 15 }, “recent_lessons”: [ { “id”: 76, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Automation learning aligns with the current architecture: log actions, measure outcomes, and gate SOP changes.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “automation”, “source_url”: “https://learningseo.io/#automation-ai-search”, “resource_titles”: [ “Automation and AI Search” ] }, “created_at”: “2026-05-03 00:00:13.383375+00:00”, “updated_at”: “2026-05-15 00:00:12.746960+00:00”, “details”: { “topic”: “automation”, “source_url”: “https://learningseo.io/#automation-ai-search”, “resource_titles”: [ “Automation and AI Search” ] } }, { “id”: 75, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Link learning should feed internal link planning on the site’s priority pages.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “links”, “source_url”: “https://learningseo.io/#link-building”, “resource_titles”: [ “Link Building” ] }, “created_at”: “2026-05-03 00:00:13.321543+00:00”, “updated_at”: “2026-05-15 00:00:12.635976+00:00”, “details”: { “topic”: “links”, “source_url”: “https://learningseo.io/#link-building”, “resource_titles”: [ “Link Building” ] } }, { “id”: 74, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Resource-level LearningSEO concepts now reinforce content depth around: The SEO Roadmap with Free Resources & Tools, The SEO Learning Roadmap.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “content”, “source_url”: “https://learningseo.io/#content”, “resource_titles”: [ “Content SEO” ] }, “created_at”: “2026-05-03 00:00:13.188483+00:00”, “updated_at”: “2026-05-15 00:00:12.494521+00:00”, “details”: { “topic”: “content”, “source_url”: “https://learningseo.io/#content”, “resource_titles”: [ “Content SEO” ] } }, { “id”: 73, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Resolve crawl, indexation, and architecture constraints before scaling content production.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “technical”, “source_url”: “https://learningseo.io/#technical-seo”, “resource_titles”: [ “Technical SEO” ] }, “created_at”: “2026-05-03 00:00:13.056670+00:00”, “updated_at”: “2026-05-15 00:00:12.331646+00:00”, “details”: { “topic”: “technical”, “source_url”: “https://learningseo.io/#technical-seo”, “resource_titles”: [ “Technical SEO” ] } }, { “id”: 72, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Execution learning reinforces the existing baseline delayed delta SOP trust loop.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “execution”, “source_url”: “https://learningseo.io/#execution”, “resource_titles”: [ “Execution Workflows” ] }, “created_at”: “2026-05-03 00:00:12.935786+00:00”, “updated_at”: “2026-05-15 00:00:12.222790+00:00”, “details”: { “topic”: “execution”, “source_url”: “https://learningseo.io/#execution”, “resource_titles”: [ “Execution Workflows” ] } } ], “recent_sops”: [ { “id”: 43, “site_key”: “club48sa”, “scope”: “site”, “name”: “adaptive-feedback-playbook”, “version”: 1, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “source”: “feedback_loop”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-15 00:01:10.609608+00:00”, “confidence_score”: 0, “confidence_label”: “low” }, { “id”: 42, “site_key”: “club48sa”, “scope”: “site”, “name”: “learningseo-site-improvement-playbook”, “version”: 1, “status”: “draft”, “content”: “1. Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.\n2. Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.\n3. Automated actions must emit events, measurements, and postmortems by default.”, “source”: “learningseo_daily”, “created_at”: “2026-05-03 00:00:13.420737+00:00”, “updated_at”: “2026-05-15 00:00:12.839278+00:00”, “confidence_score”: 0, “confidence_label”: “low” } ] }
  • context-pack
    • { “site_key”: “club48sa”, “task”: “logseq export”, “lessons”: [ { “id”: 76, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Automation learning aligns with the current architecture: log actions, measure outcomes, and gate SOP changes.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “automation”, “source_url”: “https://learningseo.io/#automation-ai-search”, “resource_titles”: [ “Automation and AI Search” ] }, “created_at”: “2026-05-03 00:00:13.383375+00:00”, “updated_at”: “2026-05-15 00:00:12.746960+00:00”, “details”: { “topic”: “automation”, “source_url”: “https://learningseo.io/#automation-ai-search”, “resource_titles”: [ “Automation and AI Search” ] } }, { “id”: 75, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Link learning should feed internal link planning on the site’s priority pages.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “links”, “source_url”: “https://learningseo.io/#link-building”, “resource_titles”: [ “Link Building” ] }, “created_at”: “2026-05-03 00:00:13.321543+00:00”, “updated_at”: “2026-05-15 00:00:12.635976+00:00”, “details”: { “topic”: “links”, “source_url”: “https://learningseo.io/#link-building”, “resource_titles”: [ “Link Building” ] } }, { “id”: 74, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Resource-level LearningSEO concepts now reinforce content depth around: The SEO Roadmap with Free Resources & Tools, The SEO Learning Roadmap.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “content”, “source_url”: “https://learningseo.io/#content”, “resource_titles”: [ “Content SEO” ] }, “created_at”: “2026-05-03 00:00:13.188483+00:00”, “updated_at”: “2026-05-15 00:00:12.494521+00:00”, “details”: { “topic”: “content”, “source_url”: “https://learningseo.io/#content”, “resource_titles”: [ “Content SEO” ] } }, { “id”: 73, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Resolve crawl, indexation, and architecture constraints before scaling content production.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “technical”, “source_url”: “https://learningseo.io/#technical-seo”, “resource_titles”: [ “Technical SEO” ] }, “created_at”: “2026-05-03 00:00:13.056670+00:00”, “updated_at”: “2026-05-15 00:00:12.331646+00:00”, “details”: { “topic”: “technical”, “source_url”: “https://learningseo.io/#technical-seo”, “resource_titles”: [ “Technical SEO” ] } }, { “id”: 72, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Execution learning reinforces the existing baseline delayed delta SOP trust loop.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “execution”, “source_url”: “https://learningseo.io/#execution”, “resource_titles”: [ “Execution Workflows” ] }, “created_at”: “2026-05-03 00:00:12.935786+00:00”, “updated_at”: “2026-05-15 00:00:12.222790+00:00”, “details”: { “topic”: “execution”, “source_url”: “https://learningseo.io/#execution”, “resource_titles”: [ “Execution Workflows” ] } }, { “id”: 71, “site_key”: “club48sa”, “category”: “learningseo”, “lesson”: “Fundamentals learning reinforces intent-first planning and query-to-page mapping.”, “confidence”: “medium”, “source”: “learningseo_daily”, “status”: “draft”, “details_json”: { “topic”: “fundamentals”, “source_url”: “https://learningseo.io/#fundamentals”, “resource_titles”: [ “SEO Fundamentals” ] }, “created_at”: “2026-05-03 00:00:12.790432+00:00”, “updated_at”: “2026-05-15 00:00:12.074894+00:00”, “details”: { “topic”: “fundamentals”, “source_url”: “https://learningseo.io/#fundamentals”, “resource_titles”: [ “SEO Fundamentals” ] } } ], “sops”: [ { “id”: 43, “site_key”: “club48sa”, “scope”: “site”, “name”: “adaptive-feedback-playbook”, “version”: 1, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “source”: “feedback_loop”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-15 00:01:10.609608+00:00”, “confidence_score”: 0, “confidence_label”: “low” } ], “recent_memory”: [ { “id”: 131, “site_key”: “club48sa”, “category”: “routine”, “action”: “daily_feedback_learning”, “target”: “club48sa”, “outcome”: “0 lessons derived”, “quality”: “good”, “details_json”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-15 00:01:10.609608+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 12 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7adf90bb3d70>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7adf90bb3da0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } }, “recorded_at”: “2026-05-15 00:01:10.782544+00:00”, “details”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-15 00:01:10.609608+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 12 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7adf90bb3d70>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7adf90bb3da0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } } }, { “id”: 123, “site_key”: “club48sa”, “category”: “routine”, “action”: “daily_feedback_learning”, “target”: “club48sa”, “outcome”: “0 lessons derived”, “quality”: “good”, “details_json”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-14 00:02:29.282773+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 11 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x794fcbcab830>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x794fcbca8b30>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } }, “recorded_at”: “2026-05-14 00:02:29.452992+00:00”, “details”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-14 00:02:29.282773+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 11 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x794fcbcab830>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x794fcbca8b30>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } } }, { “id”: 115, “site_key”: “club48sa”, “category”: “routine”, “action”: “daily_feedback_learning”, “target”: “club48sa”, “outcome”: “0 lessons derived”, “quality”: “good”, “details_json”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-13 00:01:06.446477+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 10 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x753796f4a300>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7537970c7ce0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } }, “recorded_at”: “2026-05-13 00:01:06.662919+00:00”, “details”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-13 00:01:06.446477+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 10 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x753796f4a300>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7537970c7ce0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } } }, { “id”: 107, “site_key”: “club48sa”, “category”: “routine”, “action”: “daily_feedback_learning”, “target”: “club48sa”, “outcome”: “0 lessons derived”, “quality”: “good”, “details_json”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-12 00:00:50.435161+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 9 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x766385ca88f0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x766385c9ec30>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } }, “recorded_at”: “2026-05-12 00:00:50.650941+00:00”, “details”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-12 00:00:50.435161+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 9 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x766385ca88f0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x766385c9ec30>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } } }, { “id”: 100, “site_key”: “club48sa”, “category”: “routine”, “action”: “daily_feedback_learning”, “target”: “club48sa”, “outcome”: “0 lessons derived”, “quality”: “good”, “details_json”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-11 00:01:05.454659+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 8 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7361168d9d30>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7361189cc110>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } }, “recorded_at”: “2026-05-11 00:01:05.633688+00:00”, “details”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-11 00:01:05.454659+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 8 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7361168d9d30>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7361189cc110>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } } }, { “id”: 93, “site_key”: “club48sa”, “category”: “routine”, “action”: “daily_feedback_learning”, “target”: “club48sa”, “outcome”: “0 lessons derived”, “quality”: “good”, “details_json”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-10 00:01:16.809829+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 7 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7bbad7a45310>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7bbad7a443e0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } }, “recorded_at”: “2026-05-10 00:01:16.979444+00:00”, “details”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-10 00:01:16.809829+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 7 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7bbad7a45310>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7bbad7a443e0>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } } }, { “id”: 86, “site_key”: “club48sa”, “category”: “routine”, “action”: “daily_feedback_learning”, “target”: “club48sa”, “outcome”: “0 lessons derived”, “quality”: “good”, “details_json”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-09 00:00:47.185571+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 6 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7e0e8e163830>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7e0e8e161400>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } }, “recorded_at”: “2026-05-09 00:00:47.412822+00:00”, “details”: { “sop”: { “sop”: { “id”: 43, “name”: “adaptive-feedback-playbook”, “scope”: “site”, “source”: “feedback_loop”, “status”: “draft”, “content”: “1. Sync and review the latest GSC and queue feedback before planning new work.\n2. If low-CTR pages exist with meaningful impressions, prioritize refreshes before net new drafts.\n3. If the queue is saturated, shift effort from generation to review, optimization, and publishing throughput.\n4. If failures or weak publish outcomes exist, add a verification step before production actions.\n5. Re-measure outcomes after each major SEO action and log the result back into memory.”, “version”: 1, “site_key”: “club48sa”, “created_at”: “2026-05-03 00:00:23.257695+00:00”, “updated_at”: “2026-05-09 00:00:47.185571+00:00”, “confidence_label”: “low”, “confidence_score”: 0 }, “evidence”: { “lesson_count”: 6, “outcome_count”: 0, “observation_count”: 10 }, “site_key”: “club48sa” }, “feedback”: { “site_key”: “club48sa”, “gsc_pages”: 0, “queue_rows”: 0, “gsc_queries”: 0, “workflow_events”: 6 }, “business_feedback”: { “crawler”: { “ideas”: [], “issues”: [], “message”: “Erreur reseau Crawler MCP sur http://127.0.0.1:8866/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8866): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7e0e8e163830>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “crawl_ok”: false, “acquisition_ok”: false }, “linkmap”: { “result”: {}, “message”: “Outil LinkMap introuvable pour pagerank.”, “pagerank_ok”: false, “strategy_ok”: false }, “site_key”: “club48sa”, “available”: true, “seo_panel”: { “alerts”: [], “message”: “Erreur reseau SEO Panel MCP sur http://127.0.0.1:8865/mcp: HTTPConnectionPool(host=‘127.0.0.1’, port=8865): Max retries exceeded with url: /mcp (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7e0e8e161400>: Failed to establish a new connection: [Errno 111] Connection refused’))”, “alerts_ok”: false, “overview_ok”: false, “health_score”: null }, “project_name”: “Club 48 SA” } } } ], “recent_outcomes”: [], “recent_observations”: [ { “id”: 648, “site_key”: “club48sa”, “source_type”: “workflow_state”, “subject_key”: “recent_events”, “payload_json”: { “events”: [ { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-05T00:00:42.248265Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-06T00:00:20.278357Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-07T00:00:29.937151Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-08T00:01:26.663464Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-09T00:00:47.394188Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-10T00:01:16.968860Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-11T00:01:05.621963Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-12T00:00:50.639582Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-13T00:01:06.651246Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-14T00:02:29.442591Z” } ] }, “recorded_at”: “2026-05-15 00:01:08.611571+00:00”, “payload”: { “events”: [ { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-05T00:00:42.248265Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-06T00:00:20.278357Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-07T00:00:29.937151Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-08T00:01:26.663464Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-09T00:00:47.394188Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-10T00:01:16.968860Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-11T00:01:05.621963Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-12T00:00:50.639582Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-13T00:01:06.651246Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-14T00:02:29.442591Z” } ] } }, { “id”: 647, “site_key”: “club48sa”, “source_type”: “queue_state”, “subject_key”: “recent_queue”, “payload_json”: { “recent_rows”: [] }, “recorded_at”: “2026-05-15 00:01:08.595696+00:00”, “payload”: { “recent_rows”: [] } }, { “id”: 646, “site_key”: “club48sa”, “source_type”: “gsc_snapshot”, “subject_key”: “pages_28d”, “payload_json”: { “saved_at”: "", “top_pages”: [], “top_queries”: [] }, “recorded_at”: “2026-05-15 00:01:08.578614+00:00”, “payload”: { “saved_at”: "", “top_pages”: [], “top_queries”: [] } }, { “id”: 638, “site_key”: “club48sa”, “source_type”: “learningseo_site_feedback”, “subject_key”: “club48sa”, “payload_json”: { “site_key”: “club48sa”, “project_name”: “Club 48 SA”, “applied_topics”: [ “fundamentals”, “execution”, “technical”, “content”, “links”, “automation” ], “contradictions”: [ “No local GSC page snapshot is available. Technical learning should pause autopilot decisions until visibility data exists.” ], “sop_candidates”: [ “Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.”, “Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.”, “Automated actions must emit events, measurements, and postmortems by default.” ], “lessons_created”: 6 }, “recorded_at”: “2026-05-15 00:00:12.893582+00:00”, “payload”: { “site_key”: “club48sa”, “project_name”: “Club 48 SA”, “applied_topics”: [ “fundamentals”, “execution”, “technical”, “content”, “links”, “automation” ], “contradictions”: [ “No local GSC page snapshot is available. Technical learning should pause autopilot decisions until visibility data exists.” ], “sop_candidates”: [ “Treat crawlability, indexation, and internal-link architecture as preconditions before content-scale actions.”, “Every new or refreshed priority page should receive a deliberate internal-link plan from existing related pages.”, “Automated actions must emit events, measurements, and postmortems by default.” ], “lessons_created”: 6 } }, { “id”: 628, “site_key”: “club48sa”, “source_type”: “technical_audit”, “subject_key”: “club48sa”, “payload_json”: { “gsc”: { “ok”: false, “checked”: true, “message”: “Connexion GSC KO: Propriété GSC introuvable pour https://www.club48sa.ch. Disponibles: sc-domain:optiprime.ch, https://batumiprojects.com, https://www.optiprime.ch, sc-domain:forfaitdeal.ch”, “payload”: { “site_url”: “https://www.club48sa.ch” }, “sitemap_url”: “https://www.club48sa.ch/sitemap.xml”, “sitemap_submission_ready”: false }, “pages”: [ { “ok”: true, “url”: “https://www.club48sa.ch”, “error”: "", “noindex”: false, “canonical”: "", “final_url”: “https://www.club48sa.ch/”, “indexable”: true, “redirected”: false, “robots_meta”: "", “status_code”: 200, “x_robots_tag”: "", “redirect_chain”: [], “robots_allowed”: true, “canonical_present”: false, “canonical_matches_url”: false } ], “robots”: { “ok”: true, “url”: “https://www.club48sa.ch/robots.txt”, “error”: "", “sitemaps”: [ “https://www.club48sa.ch/sitemap.xml” ], “blocks_all”: false, “rules_text”: “User-agent: *\nAllow: /\n\nSitemap: https://www.club48sa.ch/sitemap.xml\n”, “status_code”: 200 }, “status”: “ok”, “checked”: true, “sitemap”: { “ok”: true, “checked”: [ { “ok”: true, “url”: “https://www.club48sa.ch/sitemap.xml”, “error”: "", “root_tag”: “urlset”, “url_count”: 5, “valid_xml”: true, “status_code”: 200, “child_checked”: [], “child_sitemaps”: [], “listed_sample_urls”: [ “https://www.club48sa.ch/”, “https://www.club48sa.ch/comparateur”, “https://www.club48sa.ch”, “https://www.club48sa.ch/methodologie”, “https://www.club48sa.ch/confidentialite” ] } ], “selected”: { “ok”: true, “url”: “https://www.club48sa.ch/sitemap.xml”, “error”: "", “root_tag”: “urlset”, “url_count”: 5, “valid_xml”: true, “status_code”: 200, “child_checked”: [], “child_sitemaps”: [], “listed_sample_urls”: [ “https://www.club48sa.ch/”, “https://www.club48sa.ch/comparateur”, “https://www.club48sa.ch”, “https://www.club48sa.ch/methodologie”, “https://www.club48sa.ch/confidentialite” ] } }, “site_key”: “club48sa”, “warnings”: [ “canonical absent: https://www.club48sa.ch” ], “pagespeed”: { “ok”: true, “cls”: 0.0, “inp_ms”: 92.0, “lcp_ms”: 2251.0, “mobile”: { “ok”: true, “cls”: 0.0, “inp_ms”: 92.0, “lcp_ms”: 2251.0, “source”: “pagespeed_insights”, “strategy”: “mobile”, “performance_score”: 96.0 }, “source”: “pagespeed_insights”, “desktop”: { “ok”: true, “cls”: 0.0, “inp_ms”: 102.0, “lcp_ms”: 483.0, “source”: “pagespeed_insights”, “strategy”: “desktop”, “performance_score”: 100.0 }, “strategy”: “mobile”, “performance_score”: 96.0 }, “blocking_issues”: [], “safe_to_optimize”: true, “sitemap_coverage”: { “checked”: true, “missing_urls”: [], “expected_urls”: [ “https://www.club48sa.ch” ], “listed_url_sample_size”: 4 }, “technical_health_score”: 95 }, “recorded_at”: “2026-05-14 00:05:21.324634+00:00”, “payload”: { “gsc”: { “ok”: false, “checked”: true, “message”: “Connexion GSC KO: Propriété GSC introuvable pour https://www.club48sa.ch. Disponibles: sc-domain:optiprime.ch, https://batumiprojects.com, https://www.optiprime.ch, sc-domain:forfaitdeal.ch”, “payload”: { “site_url”: “https://www.club48sa.ch” }, “sitemap_url”: “https://www.club48sa.ch/sitemap.xml”, “sitemap_submission_ready”: false }, “pages”: [ { “ok”: true, “url”: “https://www.club48sa.ch”, “error”: "", “noindex”: false, “canonical”: "", “final_url”: “https://www.club48sa.ch/”, “indexable”: true, “redirected”: false, “robots_meta”: "", “status_code”: 200, “x_robots_tag”: "", “redirect_chain”: [], “robots_allowed”: true, “canonical_present”: false, “canonical_matches_url”: false } ], “robots”: { “ok”: true, “url”: “https://www.club48sa.ch/robots.txt”, “error”: "", “sitemaps”: [ “https://www.club48sa.ch/sitemap.xml” ], “blocks_all”: false, “rules_text”: “User-agent: *\nAllow: /\n\nSitemap: https://www.club48sa.ch/sitemap.xml\n”, “status_code”: 200 }, “status”: “ok”, “checked”: true, “sitemap”: { “ok”: true, “checked”: [ { “ok”: true, “url”: “https://www.club48sa.ch/sitemap.xml”, “error”: "", “root_tag”: “urlset”, “url_count”: 5, “valid_xml”: true, “status_code”: 200, “child_checked”: [], “child_sitemaps”: [], “listed_sample_urls”: [ “https://www.club48sa.ch/”, “https://www.club48sa.ch/comparateur”, “https://www.club48sa.ch”, “https://www.club48sa.ch/methodologie”, “https://www.club48sa.ch/confidentialite” ] } ], “selected”: { “ok”: true, “url”: “https://www.club48sa.ch/sitemap.xml”, “error”: "", “root_tag”: “urlset”, “url_count”: 5, “valid_xml”: true, “status_code”: 200, “child_checked”: [], “child_sitemaps”: [], “listed_sample_urls”: [ “https://www.club48sa.ch/”, “https://www.club48sa.ch/comparateur”, “https://www.club48sa.ch”, “https://www.club48sa.ch/methodologie”, “https://www.club48sa.ch/confidentialite” ] } }, “site_key”: “club48sa”, “warnings”: [ “canonical absent: https://www.club48sa.ch” ], “pagespeed”: { “ok”: true, “cls”: 0.0, “inp_ms”: 92.0, “lcp_ms”: 2251.0, “mobile”: { “ok”: true, “cls”: 0.0, “inp_ms”: 92.0, “lcp_ms”: 2251.0, “source”: “pagespeed_insights”, “strategy”: “mobile”, “performance_score”: 96.0 }, “source”: “pagespeed_insights”, “desktop”: { “ok”: true, “cls”: 0.0, “inp_ms”: 102.0, “lcp_ms”: 483.0, “source”: “pagespeed_insights”, “strategy”: “desktop”, “performance_score”: 100.0 }, “strategy”: “mobile”, “performance_score”: 96.0 }, “blocking_issues”: [], “safe_to_optimize”: true, “sitemap_coverage”: { “checked”: true, “missing_urls”: [], “expected_urls”: [ “https://www.club48sa.ch” ], “listed_url_sample_size”: 4 }, “technical_health_score”: 95 } }, { “id”: 622, “site_key”: “club48sa”, “source_type”: “workflow_state”, “subject_key”: “recent_events”, “payload_json”: { “events”: [ { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-04T00:00:20.322821Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-05T00:00:42.248265Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-06T00:00:20.278357Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-07T00:00:29.937151Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-08T00:01:26.663464Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-09T00:00:47.394188Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-10T00:01:16.968860Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-11T00:01:05.621963Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-12T00:00:50.639582Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-13T00:01:06.651246Z” } ] }, “recorded_at”: “2026-05-14 00:02:27.336989+00:00”, “payload”: { “events”: [ { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-04T00:00:20.322821Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-05T00:00:42.248265Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-06T00:00:20.278357Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-07T00:00:29.937151Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-08T00:01:26.663464Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-09T00:00:47.394188Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-10T00:01:16.968860Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-11T00:01:05.621963Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-12T00:00:50.639582Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “sop_name”: “adaptive-feedback-playbook”, “lessons_created”: 0 }, “recorded_at”: “2026-05-13T00:01:06.651246Z” } ] } }, { “id”: 621, “site_key”: “club48sa”, “source_type”: “queue_state”, “subject_key”: “recent_queue”, “payload_json”: { “recent_rows”: [] }, “recorded_at”: “2026-05-14 00:02:27.324738+00:00”, “payload”: { “recent_rows”: [] } } ], “live_state”: { “queue”: { “by_status”: {}, “recent_items”: [] }, “gsc”: { “saved_at”: "", “top_pages”: [], “top_queries”: [] }, “workflow”: { “updated_at”: “2026-05-15T00:01:10.770353Z”, “recent_events”: [ { “type”: “hermes_daily_feedback_learning”, “payload”: { “lessons_created”: 0, “sop_name”: “adaptive-feedback-playbook” }, “recorded_at”: “2026-05-11T00:01:05.621963Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “lessons_created”: 0, “sop_name”: “adaptive-feedback-playbook” }, “recorded_at”: “2026-05-12T00:00:50.639582Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “lessons_created”: 0, “sop_name”: “adaptive-feedback-playbook” }, “recorded_at”: “2026-05-13T00:01:06.651246Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “lessons_created”: 0, “sop_name”: “adaptive-feedback-playbook” }, “recorded_at”: “2026-05-14T00:02:29.442591Z” }, { “type”: “hermes_daily_feedback_learning”, “payload”: { “lessons_created”: 0, “sop_name”: “adaptive-feedback-playbook” }, “recorded_at”: “2026-05-15T00:01:10.770210Z” } ] } }, “site_context”: { “site_key”: “club48sa”, “project_name”: “Club 48 SA”, “project_type”: “repo_files”, “site_url”: “https://www.club48sa.ch”, “base_url”: “https://www.club48sa.ch”, “gsc_property”: “https://www.club48sa.ch”, “gsc_blog_prefix”: “https://www.club48sa.ch”, “agent_mode”: “full_autonomy”, “operator_policy”: “agent_driven”, “primary_market”: “ch”, “target_countries”: [ “ch”, “fr” ], “seo_scope”: “national”, “competitors”: [], “editorial_policy”: { “queue_target_max”: 0, “queue_resume_threshold”: 0, “publish_timezone”: “Europe/Paris”, “publish_hour_local”: 9, “publish_weekdays_only”: true, “max_daily_publishes”: 0, “keyword_min_volume”: 50, “keyword_max_difficulty”: 45 }, “image_policy”: { “style_guardrail”: “editorial_photo”, “subject_focus”: “premium_real_estate_objects”, “allow_humans”: “limited”, “fallback_enabled”: true, “max_prompt_variants”: 5, “min_quality_score”: 72 }, “features”: { “gsc_enabled”: true, “writer_gsc_enabled”: false, “gsc_opportunities_enabled”: true, “seo_panel_enabled”: true, “crawler_enabled”: true, “linkmap_enabled”: true } } }
  • feedback
    • { “what_learned”: [], “tests_next_week”: [ “test one low-risk refresh on a visible low-CTR page and measure the delta” ] }
  • linked-pages