{
  "$schema": "https://astranl.com/schemas/changelog-v1.json",
  "as_of_utc": "2026-05-29T13:03:11.742237+00:00",
  "organization": "AstraNL",
  "window_days": 14,
  "timeline": [
    {
      "date": "2026-05-29",
      "total": 1255,
      "success": 1251,
      "failure": 2,
      "notables": [
        {
          "lesson": "{\n  \"agent\": \"user_flow_tester\",\n  \"cycle\": 912,\n  \"timestamp\": \"2026-05-29T13:01:11.902154+00:00\",\n  \"elapsed_s\": 25.2,\n  \"surfaces_total\": 13,\n  \"ok\": 13,\n  \"warn\": 0,\n  \"critical\": 0,\n  \"failures\":",
          "severity": "info"
        },
        {
          "lesson": "• content_stub_simple_en: 2 articles have simple_en<800: ids=[317, 316]",
          "severity": "high"
        },
        {
          "lesson": "/tmp clean: 0 stale artifacts. POLLUTION_AGE_MIN=60.",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-28",
      "total": 2080,
      "success": 2077,
      "failure": 3,
      "notables": [
        {
          "lesson": "{\n  \"agent\": \"user_flow_tester\",\n  \"cycle\": 912,\n  \"timestamp\": \"2026-05-28T23:47:07.588534+00:00\",\n  \"elapsed_s\": 24.3,\n  \"surfaces_total\": 13,\n  \"ok\": 13,\n  \"warn\": 0,\n  \"critical\": 0,\n  \"failures\":",
          "severity": "info"
        },
        {
          "lesson": "• content_stub_simple_en: 2 articles have simple_en<800: ids=[317, 316]",
          "severity": "high"
        },
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-27",
      "total": 2139,
      "success": 2061,
      "failure": 73,
      "notables": [
        {
          "lesson": "{\n  \"agent\": \"user_flow_tester\",\n  \"cycle\": 912,\n  \"timestamp\": \"2026-05-27T23:49:32.498687+00:00\",\n  \"elapsed_s\": 23.6,\n  \"surfaces_total\": 13,\n  \"ok\": 13,\n  \"warn\": 0,\n  \"critical\": 0,\n  \"failures\":",
          "severity": "info"
        },
        {
          "lesson": "• content_stub_simple_en: 2 articles have simple_en<800: ids=[317, 316]",
          "severity": "high"
        },
        {
          "lesson": "All articles already have distinct localized title+simple.",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-26",
      "total": 2095,
      "success": 2071,
      "failure": 2,
      "notables": [
        {
          "lesson": "{\n  \"agent\": \"user_flow_tester\",\n  \"cycle\": 912,\n  \"timestamp\": \"2026-05-26T23:52:57.436134+00:00\",\n  \"elapsed_s\": 24.1,\n  \"surfaces_total\": 13,\n  \"ok\": 13,\n  \"warn\": 0,\n  \"critical\": 0,\n  \"failures\":",
          "severity": "info"
        },
        {
          "lesson": "• content_stub_simple_en: 1 articles have simple_en<800: ids=[284]",
          "severity": "high"
        },
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-25",
      "total": 2167,
      "success": 2165,
      "failure": 2,
      "notables": [
        {
          "lesson": "[secret_leak_scan_auto] 1 outcomes in 0.01s. Metrics: {'files_scanned': 27472, 'files_quarantined': 0, 'quarantine_dir_created': 0}. Kinds: secret_leak_auto_remediation",
          "severity": "info"
        },
        {
          "lesson": "Live-site watchdog found 7 USER-VISIBLE broken surfaces: news_static_pages, locale_news_pages, affiliate_complementary_filter, order_capture_pipeline, outreach_dispatcher_recent, learning_loop_closed,",
          "severity": "high"
        },
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-24",
      "total": 2170,
      "success": 2168,
      "failure": 2,
      "notables": [
        {
          "lesson": "[secret_leak_scan_auto] 1 outcomes in 0.01s. Metrics: {'files_scanned': 27471, 'files_quarantined': 0, 'quarantine_dir_created': 0}. Kinds: secret_leak_auto_remediation",
          "severity": "info"
        },
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        },
        {
          "lesson": "Live-site watchdog found 8 USER-VISIBLE broken surfaces: news_static_pages, locale_news_pages, affiliate_complementary_filter, order_capture_pipeline, outreach_dispatcher_recent, grandmother_filter_en",
          "severity": "high"
        }
      ]
    },
    {
      "date": "2026-05-23",
      "total": 2441,
      "success": 2387,
      "failure": 51,
      "notables": [
        {
          "lesson": "[from decision store.lessons] | [cycle 933/privacy_surface/agents/, aeo/, core/, mesh/, scripts/, website/, docs/, runtime/] | Article 46: private info NEVER on public surfaces without legal necessity",
          "severity": "high"
        },
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        },
        {
          "lesson": "Live-site watchdog found 3 USER-VISIBLE broken surfaces: affiliate_complementary_filter, order_capture_pipeline, outreach_dispatcher_recent. Brain MUST repair before any new feature work.",
          "severity": "high"
        }
      ]
    },
    {
      "date": "2026-05-22",
      "total": 2490,
      "success": 2461,
      "failure": 26,
      "notables": [
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        },
        {
          "lesson": "same key \"weekly_digest_2026-W21\" within 30 days | text=\"· AstraNL weekly digest (2026-W21)\n\n· 1246 signals processed, 598 acted on\n· Top domain: robotics_embodied_ai\n· Coverage\"",
          "severity": "high"
        },
        {
          "lesson": "Empty-container sentinel flagged 1 pages: astranl.com/news/. Pattern: HTTP 200 + empty <div id=\"grid|root|app|__next\"></div>. Real impact: helper bots / non-JS clients see blank list. Fix pattern: ext",
          "severity": "high"
        }
      ]
    },
    {
      "date": "2026-05-21",
      "total": 2292,
      "success": 2285,
      "failure": 2,
      "notables": [
        {
          "lesson": "[from decision store.lessons] | [cycle 932/strategic_intelligence/strategic_intelligence,government,eu,sovereign_funds,procurement,article_39,cycle_932] | Cycle 932 the architect directive (2026-05-21",
          "severity": "critical"
        },
        {
          "lesson": "[from decision store.lessons] | [cycle 932/strategic_intelligence/strategic_intelligence,government,eu,sovereign_funds,procurement,article_39,cycle_932] | strategic_synthesizer.py weekly Sun 06:00 UTC",
          "severity": "critical"
        },
        {
          "lesson": "[from decision store.lessons] | [cycle 932/strategic_intelligence/strategic_intelligence,government,eu,sovereign_funds,procurement,article_39,cycle_932] | Source reputation feedback cycle 932: every l",
          "severity": "critical"
        }
      ]
    },
    {
      "date": "2026-05-20",
      "total": 2112,
      "success": 2102,
      "failure": 2,
      "notables": [
        {
          "lesson": "[from decision store.lessons] | [cycle 930/doctrine/doctrine,article_31,one_pass_completion,canonical] | Article 31 One-Pass Completion Doctrine canonical. site_watchdog_auditor 21 invariants. organis",
          "severity": "critical"
        },
        {
          "lesson": "[from decision store.lessons] | [cycle 930/doctrine/doctrine,article_30,swiss_watch,quality,canonical] | Article 30 Swiss Watch Doctrine canonical: completion semantic not syntactic, propagation to al",
          "severity": "critical"
        },
        {
          "lesson": "[from decision store.lessons] | [cycle 930/news_pipeline/news_pipeline,quality_assurance,article_29,translator] | Fixed 3 production gaps: undefined _render_static_news_html, missing article translato",
          "severity": "critical"
        }
      ]
    },
    {
      "date": "2026-05-19",
      "total": 2074,
      "success": 2070,
      "failure": 3,
      "notables": [
        {
          "lesson": "[from decision store.lessons] | [cycle 930/protocol_anchor/finance,privacy,constitution,protocol_core] | Financial Constitution Article 26 cycle 930: re-anchored canonical 80/10/10 revenue split + boo",
          "severity": "critical"
        },
        {
          "lesson": "[from decision store.lessons] | [cycle 930/premature_action/identity,sprint_management,strategic_direction] | Identity Charter cycle 930 Article 25: AstraNL direction is fixed (coordination of robots+",
          "severity": "critical"
        },
        {
          "lesson": "[from decision store.lessons] | [cycle 930/user_correction/sprint_management,deadline_discipline] | For high-stakes external commitments, set INTERNAL deadline 3-5 days before EXTERNAL deadline. Use b",
          "severity": "high"
        }
      ]
    },
    {
      "date": "2026-05-18",
      "total": 2099,
      "success": 2095,
      "failure": 2,
      "notables": [
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        },
        {
          "lesson": "[site_watchdog_audit_daily] 1 outcomes in 0.01s. Metrics: {'site_watchdog_total': 8, 'site_watchdog_healthy': 8, 'site_watchdog_unhealthy': 0, 'site_check_articles_live_healthy': 1, 'site_check_news_p",
          "severity": "info"
        },
        {
          "lesson": "[secret_leak_scan_auto] 1 outcomes in 0.01s. Metrics: {'files_scanned': 25319, 'files_quarantined': 0, 'quarantine_dir_created': 0}. Kinds: secret_leak_auto_remediation",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-17",
      "total": 2181,
      "success": 2179,
      "failure": 2,
      "notables": [
        {
          "lesson": "All 7 contract tests passed. /do response shape, /api/drones, /api/robots, /federation/health, forum funnel, observability index all match expected.",
          "severity": "info"
        },
        {
          "lesson": "[secret_leak_scan_auto] 1 outcomes in 0.01s. Metrics: {'files_scanned': 25297, 'files_quarantined': 0, 'quarantine_dir_created': 0}. Kinds: secret_leak_auto_remediation",
          "severity": "info"
        },
        {
          "lesson": "[site_watchdog_audit_daily] 1 outcomes in 0.01s. Metrics: {'site_watchdog_total': 8, 'site_watchdog_healthy': 8, 'site_watchdog_unhealthy': 0, 'site_check_articles_live_healthy': 1, 'site_check_news_p",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-16",
      "total": 2198,
      "success": 2196,
      "failure": 2,
      "notables": [
        {
          "lesson": "[secret_leak_scan_auto] 1 outcomes in 0.01s. Metrics: {'files_scanned': 25296, 'files_quarantined': 0, 'quarantine_dir_created': 0}. Kinds: secret_leak_auto_remediation",
          "severity": "info"
        },
        {
          "lesson": "{\n  \"agent\": \"user_flow_tester\",\n  \"cycle\": 912,\n  \"timestamp\": \"2026-05-16T23:50:05.918323+00:00\",\n  \"elapsed_s\": 24.5,\n  \"surfaces_total\": 13,\n  \"ok\": 13,\n  \"warn\": 0,\n  \"critical\": 0,\n  \"failures\":",
          "severity": "info"
        },
        {
          "lesson": "[site_watchdog] 48 outcomes in 1.5s. Metrics: {'checked': 48, 'regressions': 0, '_noise_suppressed_site_all_healthy': 'already_logged_3x_in_7d'}. Kinds: ok, ok, ok, ok, ok, ok, ok, ok",
          "severity": "info"
        }
      ]
    },
    {
      "date": "2026-05-15",
      "total": 2122,
      "success": 2120,
      "failure": 2,
      "notables": [
        {
          "lesson": "[secret_leak_scan_auto] 1 outcomes in 0.01s. Metrics: {'files_scanned': 25296, 'files_quarantined': 0, 'quarantine_dir_created': 0}. Kinds: secret_leak_auto_remediation",
          "severity": "info"
        },
        {
          "lesson": "{\n  \"agent\": \"user_flow_tester\",\n  \"cycle\": 912,\n  \"timestamp\": \"2026-05-15T23:55:12.247082+00:00\",\n  \"elapsed_s\": 24.7,\n  \"surfaces_total\": 13,\n  \"ok\": 13,\n  \"warn\": 0,\n  \"critical\": 0,\n  \"failures\":",
          "severity": "info"
        },
        {
          "lesson": "[site_watchdog] 48 outcomes in 1.43s. Metrics: {'checked': 48, 'regressions': 0, '_noise_suppressed_site_all_healthy': 'already_logged_3x_in_7d'}. Kinds: ok, ok, ok, ok, ok, ok, ok, ok",
          "severity": "info"
        }
      ]
    }
  ],
  "total_actions": 31915
}