{"ready":5,"watch":3,"blocked":0,"checks":[{"key":"ai","label":"Claude AI","state":"ready","detail":"Configured for live draft generation.","action":""},{"key":"database","label":"Supabase","state":"ready","detail":"Backend can read/write persistent workspace data.","action":""},{"key":"sources","label":"Source memory","state":"ready","detail":"4 sources available.","action":""},{"key":"drafts","label":"Review queue","state":"ready","detail":"2 drafts in workspace.","action":""},{"key":"buffer","label":"Buffer publishing","state":"ready","detail":"3 Buffer channels connected.","action":""},{"key":"discord","label":"Discord monitoring","state":"watch","detail":"DISCORD_GUILD_ID is not set.; DISCORD_ALERTS_CHANNEL_ID is not set.","action":"Add DISCORD_GUILD_ID and DISCORD_ALERTS_CHANNEL_ID."},{"key":"linkedin","label":"LinkedIn","state":"watch","detail":"LinkedIn API returned HTTP 403.","action":"Wait for/complete LinkedIn organization permissions."},{"key":"youtube","label":"YouTube","state":"watch","detail":"YouTube API returned HTTP 400.","action":"Complete OAuth refresh token if publishing video."}]}