| # | Test | Status | File |
|---|---|---|---|
| 1 | test_fetch_rss_filters_by_age |
🔴 | tests/test_rss.py |
| 2 | test_fetch_rss_handles_feed_error |
🔴 | tests/test_rss.py |
| 3 | test_gemini_retry_on_timeout |
🔴 | tests/test_gemini_select.py |
| 4 | test_sanitize_post_strips_preamble |
🔴 | tests/test_gemini_select.py |
| 5 | test_sanitize_post_converts_md_to_html |
🔴 | tests/test_gemini_select.py |
| 6 | test_build_spec_required_fields |
🔴 | tests/test_infographic.py |
| 7 | test_render_png_outputs_1080x1080 |
🔴 | tests/test_infographic.py |
| 8 | test_build_thread_root_under_300 |
🔴 | tests/test_threads_publisher.py |
| 9 | test_build_thread_replies_under_500 |
🔴 | tests/test_threads_publisher.py |
| 10 | test_publish_thread_partial_success |
🔴 | tests/test_threads_publisher.py |
| 11 | test_telegram_caption_trims_to_1024 |
🔴 | tests/test_telegram_publisher.py |
| 12 | test_seen_ids_atomic_write |
🔴 | tests/test_state.py |
| Експеримент | Варіант A | Варіант B | Тривалість | Метрика |
|---|---|---|---|---|
| Hook-формула ROOT Threads | Cliffhanger факт | Запитання-зачин | 14 днів | reply-rate, impressions/day |
| Infographic у Telegram | sendPhoto + caption | sendMessage text-only | 7 днів | views, forwards |
| Time-of-day shift | 5/11/17 UTC (зараз) | 7/13/19 UTC | 14 днів | views у перші 60 хв |
| Threads хештеги | 0 хештегів | 3-4 weave-style | 7 днів | impressions, profile-visits |
| Telegram link у Threads | У фінальному reply | Не додаємо | 7 днів | click-through на Telegram |
getChatMessage (не дає), через TGStat або @ChatStatBot manual export 1×/тижденьGET /me/threads_insights) — views, replies, reposts, quotes per-post?utm_source=threadspediatric_news.events (Phase 2)Цільові з NFR specification:
Target: ≥ 75% (pure pipeline modules); orchestrator bot.py — smoke-тест tick'у з моками RSS+Gemini