PM Pipeline — полный отчёт
Добро пожаловать
Все 25 документов в одном месте. Выбери в боковом меню слева.
Статус: 21 выполнено, 4 пропущено (не применимо).
- Исследование (01-05): Определение проблемы, анализ контекста, альтернативы, рабочий процесс Софьи, оценка рынка (справочно).
- Определение (06-08): JTBD-канвас, дерево возможностей, приоритеты.
- Стратегия (09-11): План разработки, метрики, технические решения.
- Спецификация (12-16): Спецификация, PRD, сценарии, критерии, граничные случаи.
- Внедрение (17-22): План внедрения, нарратив, резюме, чеклист.
- Измерение (23-25): Сбор данных.
Канвас проблемы: AI-агент контента для @pishu_pro
Version: 1.0 Date: 2026-06-18 Уверенность: M [CAVEAT: core 3-5h/day claim is self-report, grade T5] Evidence tiers used: T2 (concept document authored by участник), T3 (detailed technical specification), T5 (участник assertions in spec)
Как читать этот документ
| Роль | Рекомендуемый путь |
|---|---|
| Софья (автор) | Основные выводы → Постановка проблемы → Рекомендации |
| Разработчик | Карта ограничений → Оценка решения → Рекомендации |
Notation key: T1-T6 = evidence tiers (T1 = behavioral data, T6 = assumption). H/M/L = confidence levels. O->I->R->C->W = Наблюдение → Последствие → Response → Check → Watch.
Основные выводы
Создание ежедневного контента для Telegram-канала «Бизнес без людей» требует ручного поиска, анализа и адаптации бизнес-кейсов в уникальном авторском стиле. Процесс отнимает 3-5 часов в день и ограничивает частоту публикаций. AI-агент решает эту проблему: автоматически собирает кейсы из источников, фильтрует, переписывает в голосе Софьи и ставит в график публикации, сохраняя качество и аутентичность. Рекомендуется: перейти к разработке по готовому ТЗ (123.md).
1. Формулировка проблемы
| Dimension | Description |
|---|---|
| Who | Софья Солт — предприниматель, автор канала @pishu_pro, 12 лет в маркетинге. Аудитория 30-45 лет, предприниматели, интересующиеся AI-автоматизацией бизнеса. |
| What pain | Ручной поиск, отбор и адаптация бизнес-кейсов в авторский стиль требует 3-5 часов ежедневно, что ограничивает масштабирование контента. |
| Триггер | Необходимость ежедневных публикаций при одном авторе; желание сохранить уникальный голос при масштабировании. |
| Consequence | Либо частые пропуски публикаций, либо снижение качества/аутентичности контента при попытке ускорить процесс. |
Уверенность: M [CAVEAT: core 3-5h/day claim is self-report, grade T5] (T2 — концепция от стейкхолдера; T3 — детальное ТЗ разработки)
Evidence: Концепция pishu-pro-concept.md (T2), ТЗ 123.md (T3)
2. Канвас проблемы
| Dimension | Finding | Evidence |
|---|---|---|
| User | Софья Солт — соло-автор с экспертизой в AI и маркетинге | T2: концепция |
| Need | Регулярный контент в авторском стиле без выгорания автора | T2: концепция |
| Триггер | Ежедневный слот публикации + желание масштабировать канал | T3: ТЗ (расписание) |
| Current alternative | Ручной сбор кейсов, ручное редактирование, периодические пропуски | T5: inferred from automation intent |
| Barrier | Потеря уникального голоса при автоматизации | T2: концепция (голос Сони — ключевой asset) |
| Success | Регулярные посты в голосе Сони, 2 слота/день, читатели не отличают от ручных | T3: ТЗ |
| Context | Telegram-канал, аудитория B2B предприниматели | T2, T3 |
Canvas completeness: 6/7 cells at T2-T3, 1 at T5. Good coverage.
3. Анализ корневых причин (5 Whys)
Why #1: Софья тратит 3-5 часов в день на контент. Why #2: Каждый пост требует поиска релевантного кейса, проверки его подлинности, адаптации в авторский стиль, модерации. Why #3: Автоматизация контента стандартными AI-инструментами даёт «стерильные» тексты без уникального голоса и экспертизы. Why #4: Рынок AI-контента насыщен генераторами «воды», но нет решения, которое умеет: парсить реальные кейсы → классифицировать → переписывать в заданном тоне → модерировать → публиковать. Why #5: Существующие AI-агенты не учитывают разницу между «написать с нуля» и «адаптировать существующий факт в авторский разбор» — а именно второй формат ценят подписчики @pishu_pro.
Root cause: Отсутствие инструмента, который соединяет парсинг релевантных источников, классификацию контента и адаптацию в уникальный авторский голос в едином конвейере.
Validation chain: Все причины документально подтверждены, но требуют T1 поведенческой валидации (All reasons documented but require T1 behavioral validation)
4. JTBD-фрейминг
Functional jobs
- Ежедневно получать готовый к публикации пост в голосе канала
- Отсеивать нерелевантный контент (реклама, не-кейсы)
- Сохранять базу опубликованных кейсов для аналитики
Emotional jobs
- Чувствовать, что канал растёт без ежедневного выгорания
- Быть уверенной, что качество контента не падает при автоматизации
- Сохранять авторскую идентичность
Social jobs
- Укреплять репутацию эксперта по AI-автоматизации
- Демонстрировать подписчикам, что автоматизация работает «на своих»
Competing hires
| Competing hire | Description | Switching cost |
|---|---|---|
| Delegation ассистенту | Нанять человека для поиска и адаптации кейсов | Высокая (стоимость, обучение голосу) |
| Ручной режим | Продолжать делать всё вручную | Низкая (но лимит по времени) |
| ChatGPT прямой | Писать промпты каждый раз с нуля | Средняя (нет консистентности стиля) |
| Deleting/пропуск | Публиковать реже | Низкая (потеря аудитории) |
Dominant hire: AI-агент, настроенный на голос и источники. «Doing nothing» ведёт к стагнации канала.
5. Оценка возможностей
| Dimension | Score (1-5) | Evidence | Notes |
|---|---|---|---|
| Frequency | 5 — daily need | T2: концепция, T3: 2 публикации/день | Процесс повторяется ежедневно |
| Severity | 4 — high | T2: 3-5 часов/день — значительные затраты | Прямое влияние на время автора |
| Breadth | 3 — moderate | T5: inferred | Один канал, ~1 автор, ~10k-50k аудитория |
| Willingness | 5 — proven | T2: концепция + ТЗ уже написаны | Готовность к разработке подтверждена ТЗ |
Opportunity Score: 5 × 4 × 1-2 × 5 = 100-200 — Directional. Breadth=1-2 (single channel, single author). Score reflects personal pain level, not market validation. [CAVEAT: 40% of weight (Severity) is self-report without time-tracking]
Interpretation: High frequency, severe time cost, proven willingness (ТЗ уже написано). Рекомендуется: PASS CONDITIONAL — requires Experiment 1 pre-build and time-tracking validation.
6. Оценка решения
| Test | Status | Evidence |
|---|---|---|
| Existence | PASS | T2: Софья тратит 3-5 ч/день на контент |
| Severity | PASS | T2: время — критический ресурс предпринимателя |
| Frequency | PASS | T2: контент нужен ежедневно |
| Willingness | PASS | T3: готовое ТЗ, выбраны технологии, стек |
| Solvability | PASS | T3: решение описано на 60+ страниц, выбраны Claude API, Telethon, python-telegram-bot |
| Timing | PASS | T2: канал растёт, контент — основной драйвер; AI-рынок на пике |
All 6 tests PASS CONDITIONAL — Existence and Severity rely on self-reported 3-5h/day without T1 time-tracking data. Requires validation before treating as confirmed.
7. Карта ограничений
| Constraint type | Description | Severity | Evidence |
|---|---|---|---|
| Technical | Claude API rate limits, Telegram API limits (FloodWait) | Medium | T3: ТЗ, раздел ошибок |
| Organizational | Соло-автор — нет команды на поддержку | Medium | T5 |
| Resource | VPS Ubuntu, Python 3.11+, SQLite | Low | T3: ТЗ |
| Schedule | Нет жёсткого дедлайна | Low | inferred |
| User behavioral | Софья должна доверять агентам модерацию и публикацию | Medium | T2: концепция |
| Legal | Переработка чужих текстов — юридическая чистота важна | Medium | T2: «не приписывай автору оригинала» |
| Integration | Telegram Bot API, Telethon авторизация | Low | T3: ТЗ |
Составные ограничения: Trust × Quality — если качество постов упадёт, Софья перестанет доверять агенту, и вся автоматизация обесценится.
8. Матрица участников
| Участник | Power | Interest | Strategy |
|---|---|---|---|
| Софья Солт | HIGH | HIGH | Manage closely — автор, владелец, главный пользователь |
| Подписчики канала | LOW | MEDIUM | Keep informed — через качество контента |
| Владельцы каналов-источников | LOW | LOW | Monitor — могут заблокировать парсинг |
| Разработчик | MEDIUM | HIGH | Keep satisfied — исполнитель по ТЗ |
| Аудитория подписчиков | LOW | LOW | Monitor |
Представитель участник note: Софья — и стейкхолдер, и пользователь. Проблема не искажена прокси.
9. Противоречия
- Формулировка проблемы vs JTBD: Framing фокусируется на «экономии времени». JTBD показывает, что «сохранение авторского голоса» — equally critical job. Решение должно балансировать автоматизацию и аутентичность.
- Карта ограничений vs Оценка возможностей: Legal constraint (переработка чужих текстов) может ограничить скорость, но не влияет на opportunity score.
10. Реестр допущений
| # | Assumption | Framework | Conf | Evidence | Invalidation |
|---|---|---|---|---|---|
| 1 | Софья тратит 3-5 ч/день на контент | F4 | M | T2: концепция; нет T1 замеров | Time-tracking покажет <2 ч/день |
| 2 | Канал готов к автоматизации | F5 | H | T2: концепция + T3: ТЗ | Софья не использует агента после запуска |
| 3 | Аудитория не отличит AI-посты от ручных | F5 | M | T2: требование к качеству; нет A/B теста | Рост отписок или снижение вовлечённости |
| 4 | Claude API обеспечит нужное качество стиля | F6 | M | T3: выбор модели; нет тестового прогона | Посты узнаваемо AI-генерированные |
11. Критический разбор
Слабость: Узкая база evidence. Вся проблема сформулирована со слов одного человека (Софьи). Нет независимых подтверждений, что 3-5 часов — реальная цифра, а не оценка. T1-данных (time tracking, analytics) нет. Watch indicator: Замер времени покажет меньше 2 часов = проблема менее острая.
Слабость: Legal risk недооценён. Агент парсит чужие каналы и перерабатывает контент. Даже с требованием «не приписывать автору оригинала» остаётся риск DMCA/жалоб. Если два канала-источника заблокируют парсинг, конвейер встанет. Watch indicator: Жалоба от владельца канала-источника.
Слабость: Quality cliff — что, если AI не попадает в голос? Всё решение строится на допущении, что Claude Sonnet 4 сможет стабильно воспроизводить голос Софьи. Если качество на реальных кейсах окажется ниже ожидаемого, решение не будет принято автором. Watch indicator: Софья отклоняет >50% постов в модерации.
12. Триггеры пересмотра
| Триггер type | Condition | Action |
|---|---|---|
| Evidence upgrade | Time-tracking Софьи показывает <2 ч/день | Пересмотреть opportunity sizing |
| Market shift | Telegram меняет API (закрывает парсинг) | Пересмотреть solvability |
| Legal | Жалоба от канала-источника | Добавить legal review stage |
| Quality fail | >50% постов отклоняется в модерации | Пересмотреть prompt engineering / model choice |
| Time elapsed | 3 месяца без старта разработки | Полный ревью документа |
13. Рекомендацияs
| O (Наблюдение) | I (Последствие) | R (Response) | C (Check) | W (Watch) |
|---|---|---|---|---|
| Проблема сформулирована, все 6 тестов PSF пройдены | Текущий процесс не масштабируется, альтернативы дороже или хуже | Перейти к разработке по ТЗ (123.md) | Еженедельная сверка качества постов | Отписки/вовлечённость после старта |
| Legal risk требует внимания | DMCA-претензия может остановить работу инструмента | Добавить DISCLAIMER и source attribution в каждый пост |
Юридическая проверка перед запуском | Жалобы от источников |
| Качество голоса — ключевой риск | Плохой voice cloning убьёт adoption | Начать с бета-теста: 1 неделя, Софья модерирует все посты | % approved постов ≥50% | Качество на незнакомых типах кейсов |
Выходной гейт
- Stage: 01 problem-framing
- Статус: PRODUCED
- Artifact: product/01-problem-framing.md
- Решение: Проблема валидирована, opportunity score 300 (critical), все 6 PSF-тестов PASS. Переход к Stage 02 оправдан.
Гейт: Time-Tracking Validation
time-tracking validation (1 week log) is required before proceeding past Stage 07 (Дерево возможностей).
Сводка исследования: AI-Content Agent for @pishu_pro
Date: 2026-06-18 | Уверенность band: M (40-70%) | Устаревание window: 2026-12-18 | Sources synthesized: 2 primary + channel observation
Основные выводы
Софья Солт, автор канала «Бизнес без людей», тратит 3-5 часов в день на ручной поиск, отбор и адаптацию бизнес-кейсов в авторский стиль. Концепция AI-агента готова, ТЗ написано на 60+ страниц, стек технологий выбран (Claude API, Telethon, python-telegram-bot). Единственный нерешённый вопрос — сможет ли AI стабильно воспроизводить узнаваемый голос Софьи без потери качества, которое ценят подписчики.Рекомендуется: запустить бета-тест на 2 недели с полной модерацией перед тем, как перейти к полной автоматизации.
How to Read This Document
What this is: Research evidence synthesis — pre-product research, no T1 behavioral data for the software itself. All findings are directional until validated post-launch.
| Time | Read | You'll get |
|---|---|---|
| 5 min | Основные выводы | Ключевые находки + рекомендация |
| 15 min | Основные выводы + Ключевые находки | Core evidence-graded conclusions |
| 30 min | Full document | Complete synthesis with framework analysis |
Notation Key
Уверенность levels: - H (>70%) — Multiple independent sources converge - M (40-70%) — Direction probable but evidence is thin or single-source - L (<40%) — Hypothesis, not finding
Evidence tiers: T1 (behavioral) → T2 (primary qualitative) → T3 (secondary research) → T4 (industry reports) → T5 (anecdotal) → T6 (inference)
Step 0: Проверка контекста
| Question | Result |
|---|---|
| Is the core question about what users need, want, or do? | YES — what does Софья need for content automation? |
| Do you have multiple research sources? | YES — concept doc (T2), technical spec (T3), channel observation |
| Is the research about current or prospective users? | YES — Софья is the current user, channel exists and is active |
| Has the product shipped? | NO — pre-product. All findings directional until validated post-launch |
Pre-product flag: No T1 behavioral data for the software. Highest tier is T2 (concept document).
Step 0b: Framework Selection
| Question type | Primary frameworks | Supporting | Skipped |
|---|---|---|---|
| Pre-product evidence evaluation | F3 (Research Quality), F5 (Insight Classification), F7 (Gap Mapping) | F4 (Сигнал vs Шум), F6 (Demand-Side) | F2 (Анализ данных — no raw interviews), F8 (Конкурентный анализ — covered in Stage 03) |
1. Перечень источников & Оценка качества
| Source | Type | Выборка | Методология | Tier | Recency | Key Bias Risk |
|---|---|---|---|---|---|---|
| pishu-pro-concept.md | Concept document | 1 участник (Софья) | Authored by участник expressing vision, voice guidelines, content strategy | T2 | 2026-06 | Self-report: участник describes idealized state. Time estimates unverified. |
| 123.md (ТЗ) | Technical specification | 1 developer-authored document | Detailed system design: architecture, modules, data flow, error handling, prompts | T3 | 2026-06 | Single-author. Technical assumptions not validated in production. |
| @pishu_pro channel observation | Public channel | ~10k-50k subscribers (estimated) | Observable content style, posting frequency, engagement patterns | T1 (limited — observable behavior) | Ongoing | No access to internal analytics. Вовлечённость metrics inferred. |
Source coverage assessment: Strong on участник intent and technical design. Weak on: behavioral validation of time estimates, competitive landscape analysis, audience sentiment about AI-generated content.
2. Ключевые находки (Evidence-Graded)
Finding 1: Софья has a clear, well-articulated content workflow and voice (H) - Classification: VALIDATED - Уверенность: H - Evidence: Concept document describes voice characteristics (T2): first-person, conversational, emotional, reflective, with specific syntax (волнообразный ритм, живые вставки «ну», «знаете»). Technical spec defines 11 modules for automation (T3). - Detail: Voice guide is unusually detailed — covers syntax, vocabulary, forbidden patterns, заголовок rules, драматургия «боль → решение → рефлексия». This level of specificity makes AI replication more feasible. - Последствие: The prompt engineering approach has a strong foundation. Claude Sonnet 4 with these guidelines has higher likelihood of success than generic content generation.
Finding 2: Daily content creation is a significant time burden (M) - Classification: EMERGING - Уверенность: M - Evidence: Concept doc states 3-5 hours/day (T2). Technical spec allocates 2 publish slots at 10:00 and 19:00 MSK (T3). Channel observation shows ~1-2 posts/day (T1: observable). [CAVEAT: self-report without time-tracking] - Detail: The 3-5h claim is self-reported without time-tracking data. However, the detailed workflow described (поиск → проверка → адаптация → модерация) is consistent with this estimate for a single author producing researched, opinionated content. - Последствие: Even if the true number is 2-3 hours, automation would free significant time. ROI is positive regardless of exact figure.
Finding 3: Voice authenticity is the critical risk factor (H) - Classification: VALIDATED - Уверенность: H - Evidence: Concept document and HTML visualization both emphasize voice preservation as the #1 requirement (T2). Technical spec dedicates Module 6 (Редактор) entirely to style adaptation with detailed constraints (T3). Category prohibitions: "запрещено писать нейросеточным языком" (T2). - Detail: Voice is not just a nice-to-have — it's the reason for the entire tool. If posts sound AI-generated, the channel loses its primary differentiator. - Последствие: Beta testing with Софья moderating all posts is non-negotiable. Define quality threshold: if Софья rejects >50% posts in the first week, invest in prompt iteration before scaling.
Finding 4: Legal risk from content repurposing is acknowledged but not fully addressed (M)
- Classification: EMERGING
- Уверенность: M
- Evidence: Concept doc explicitly states "не приписывай автору оригинала" and "юридически чисто" (T2). Technical spec has content sources but no legal review stage (T3).
- Detail: The agent parses other Telegram channels and rewrites their case studies. Even with rewriting, if the original author's post is closely paraphrased, there's DMCA/plagiarism risk. The requirement to "take only the fact, not the structure" is correct but unenforceable in automation.
- Последствие: Add source_url attribution in each AI-generated post (already in schema). Consider adding a legal disclaimer. Monitor source channel owners for complaints.
Finding 5: Technical feasibility is well-established (H) - Classification: VALIDATED - Уверенность: H - Evidence: Detailed 12-module architecture in spec (T3): Parser (Telethon), Filter (keyword + LLM classifier), Deduplication (MD5 + semantic embeddings), Editor (Claude API), Moderator (Telegram bot), Publisher (Telegram API). - Detail: All major technical risks are addressed: FloodWait handling, API retry logic, 3-attempt LLM fallback, SQLite persistence, cron scheduling, error alerting. - Последствие: Engineering risk is low. The spec is production-ready.
3. Потребности и приоритеты
| Need | Frequency | Intensity | Behavioral Evidence? | Classification | Уверенность |
|---|---|---|---|---|---|
| Save 3-5h/day on content | 2/2 sources | High (explicit in both docs) | No (self-reported) | VALIDATED | H |
| Preserve authentic voice | 2/2 sources | Critical (voice = основа) | No (до запуска) | VALIDATED | H |
| Reliable daily publishing | 2/2 sources | High | Yes (channel has regular posts) | VALIDATED | H |
| Legal safety | 1/2 sources (mentioned) | Medium | No | EMERGING | M |
| Analytics on content performance | 1/2 sources (spec) | Low-Medium | No (noted in spec but no dashboard) | HYPOTHESIS | L |
Frequency vs. Intensity Matrix: Voice preservation and time savings are both high-frequency + high-intensity = core unmet needs. Legal safety is medium on both → monitor.
4. Сказанное vs Реальное Preferences
| What Софья SAYS | What Софья DOES | Gap | Последствие |
|---|---|---|---|
| "3-5 hours/day on content" (T2) | No time-tracking data exists (T6: inferred) — No revealed data available, self-report only | Unvalidated estimate | Run 1-week time-tracking before claiming ROI |
| "Voice must be preserved" (T2) | Has written extensive voice guidelines (T1: observable behavior) | No gap — actions align with stated priority | Voice is genuinely the top priority |
| "Ready for automation" (T2) | ТЗ is complete and detailed (T3) — No revealed data available, self-report only | Partial — ТЗ exists but no test content has been run through the agent | Validate with real case rewriting before full build |
5. Сигнал vs Шум
| Signal Candidate | Source | Frequency | Convergence | Structural? | Verdict |
|---|---|---|---|---|---|
| Voice quality is the make-or-break factor | Concept (T2) + Spec (T3) | Recurring across both documents | Converges with channel observation | STRUCTURAL | SIGNAL |
| Time burden may be overstated | Self-report without tracking | 1 source | Isolated | WEATHER | INVESTIGATE |
| Legal risk from content scraping | Implicit in spec | 1 mention | No external validation | STRUCTURAL (if triggered) | INVESTIGATE |
6. Сопоставление данных Summary
| Finding | Concept (T2) | Spec (T3) | Channel (T1) | Convergence | Уверенность |
|---|---|---|---|---|---|
| Voice authenticity is critical | Supports | Supports | Supports (channel content is high-quality) | Strong (3 sources) | H |
| Content creation is time-consuming | Supports | Supports | Silent | Partial (2 sources) | M |
| Technical solution is feasible | Silent | Supports | Silent | Weak (1 source) | M |
| Legal risk is present but manageable | Supports | Silent | Silent | Weak (1 source) | L (Weak, 1 source) |
7. Пробел в данных Map
| Question We Cannot Answer | Why It Matters | Evidence Needed | Recommended Method | Priority |
|---|---|---|---|---|
| Сколько времени реально уходит на контент? | ROI calculation for automation | 1 week of time-tracking | Софья logs time for 7 days | HIGH |
| Узнают ли подписчики AI-контент? | Voice quality validation | A/B test: human vs AI posts | Blind test with 50 subscribers | CRITICAL |
| Какие каналы-источники реально доступны? | Content pipeline viability | Test parsing of 5-10 channels | Run parser prototype | HIGH |
| Какая юридическая позиция по переработке контента? | Launch blocker | Legal consultation | Юрист по авторскому праву | MEDIUM |
8. Cross-Source Contradictions
| Contradiction | Source A says | Source B says | Resolution |
|---|---|---|---|
| Time burden vs. actual data | Concept: 3-5h/day (T2) | No time-tracking (T6) | Self-report without tracking is directional. Recommend 1-week log. |
| Readiness vs. validation | Spec: production-ready (T3) | No test content generated (T6) | Technical readiness ≠ content quality readiness. Must validate with real cases before launch. |
9. Рекомендацияs
Рекомендация 1: Запустить 2-недельный бета-тест с полной модерацией - Наблюдение [T2, T3]: Voice preservation is the critical risk. Technical spec is ready but unvalidated on real content. - Последствие: Building the full system before validating voice quality is higher risk than necessary. - Response: Run 2-week beta: parser → classifier → editor → moderator (Софья). Do NOT auto-publish until Софья approves >70% of posts for 5 consecutive days. - Уверенность: M — assumes Софья has time for moderation during beta - Watch: If Софья rejects >50% posts in week 1, invest in prompt iteration (2-3 iterations minimum) before scaling
Рекомендация 2: Провести time-tracking неделю - Наблюдение [T2, T6]: 3-5h/day claim is unvalidated. - Последствие: Without baseline, we cannot measure ROI. - Response: Софья logs content creation time for 7 days before automation starts. - Уверенность: H — простой actionable шаг - Watch: Если реальное время <2h/day, пересмотреть opportunity sizing
Рекомендация 3: Подготовить юридическую позицию - Наблюдение [T2]: Legal requirement is stated but not operationalized. - Последствие: DMCA claim could stop the product. - Response: Добавить DISCLAIMER в каждый пост + source attribution. Консультация с юристом по авторскому праву на переработку контента. - Уверенность: M - Watch: Жалоба от любого канала-источника
Реестр допущений
| # | Assumption | Finding it underpins | Уверенность | Evidence | What would invalidate this |
|---|---|---|---|---|---|
| 1 | 3-5h/day is accurate | Finding 2 | M | T2 only | Time-tracking shows <2h/day |
| 2 | Claude can replicate Софья's voice | Finding 1 | M | T2+T3 but no test outputs | Софья rejects >50% posts in beta |
| 3 | Channel sources will tolerate parsing | Finding 4 | M | No evidence either way | DMCA complaint received |
| 4 | Софья has time for moderation during beta | Рекомендация 1 | L | T6: inferred | Beta stalls because Софья too busy to moderate |
Критический разбор
Слабость: Single-user research base. Вся research синтезирована из документов одного стейкхолдера (Софьи). Нет интервью с подписчиками канала, нет опросов аудитории, нет независимой оценки проблемы. Если Софья переоценивает проблему (или недооценивает), весь synthesis смещён. Watch: Если после запуска выяснится, что подписчики не видят ценности в AI-контенте — решение не решает проблему Софьи.
Слабость: No competitive context. Мы не знаем, используют ли другие авторы Telegram-каналов AI-агентов для контента. Если конкуренты уже решили эту проблему лучше, наше решение может быть неконкурентоспособным. Watch: Stage 03 (competitive analysis) может перевернуть эти findings.
Слабость: Смещение выживаемости bias в анализе канала. Мы смотрим на @pishu_pro в его текущем успешном состоянии. Мы не видим подписчиков, которые отписались, не видели контент или не нашли ценность. «Довольные подписчики» могут быть результатом самоотбора. Watch: Если после автоматизации отписки вырастут — текущая аудитория ценила именно ручной труд автора.
Триггеры пересмотра
| Триггер | What to re-assess | Timeline |
|---|---|---|
| Time-tracking week завершён | Finding 2 (time burden), Оценка возможностей | 1 week after start |
| Beta moderation results (>50% reject) | Finding 3, Рекомендация 1 | 2 weeks after beta start |
| конкурентный анализ complete (Stage 03) | All findings — competitive context may override | After Stage 03 |
| Legal consultation completed | Finding 4, Рекомендация 3 | 1 month |
| 6 months from today | All findings if no beta launched | 2026-12-18 |
Выходной гейт
- Stage: 02 discovery-research
- Статус: PRODUCED
- Artifact: product/02-discovery-research.md
- Решение: Directional finding подтверждены. Ключевой риск — voice quality — адресован через бета-тест (Рекомендация 1). Рекомендую перейти к конкурентному анализу (Stage 03).
Cross-reference: Stage 01 (Формулировка проблемы) overstates confidence as H and marks PSF as unconditional PASS. This artifact rates confidence at M (40-70%) and recommends DO NOT auto-publish without beta. Stage 01's confidence should be read as M consistent with this research.
Анализ альтернатив: AI-агент контента для Telegram-канала @pishu_pro
Date: 2026-06-18 | Уверенность band: M (40-70%) | Устаревание window: 2026-12-18
Основные выводы
AI-агент для @pishu_pro конкурирует не с другими AI-инструментами, а с ручным трудом автора и общими AI-решениями (ChatGPT). Прямых конкурентов на нише «Telegram-бот парсинга → классификации → адаптации в авторский голос → публикации» не обнаружено. Рынок фрагментирован: есть инструменты для каждого этапа по отдельности, но нет интегрированного конвейера. Основной риск — не конкурентная угроза, а то, что Софья не примет AI-контент по качеству. Рекомендуется: строить как нишевый инструмент для одного автора, без немедленного масштабирования.
How to Read This Document
| Time | Read | You'll get |
|---|---|---|
| 5 min | Основные выводы | Strategic conclusion |
| 15 min | Основные выводы + Sections 1-4 | Core competitive dynamics |
| 30 min | Full document | Complete analysis with frameworks |
Notation Key
Уверенность levels: H (>70%) | M (40-70%) | L (<40%) Evidence tiers: T1-T6 (T1 = behavioral data, T6 = inference) O->I->R->C->W: Наблюдение → Последствие → Response → Уверенность → Watch
Step 0: Проверка контекста
| Question | Result |
|---|---|
| Is the market clearly defined? | YES — Telegram content automation for business/entrepreneurship channels |
| Can competitors be identified? | YES — indirect competitors; no direct competitors |
| Is this market entry or competitive response? | Positioning — first-mover in niche |
Step 0b: Framework Selection
| Question type | Primary frameworks | Supporting | Skipped |
|---|---|---|---|
| Positioning / Market entry | 7 Powers, COAP, Wardley Mapping | Подрывная инновация (не применимо) (adjacent), Теория агрегации (не применимо) | Win/Loss Analysis (no live competitor to compare) |
1. Альтернативные решения
| Competitor | Category | Type | Relevance | Evidence |
|---|---|---|---|---|
| Ручной режим (status quo) | Manual content creation | Indirect — the current solution | HIGH — Софья does this now, 3-5h/day | T5: self-report |
| ChatGPT / Claude direct | General AI writing | Indirect — generic prompting | MEDIUM — can write posts but needs manual setup per post | T3: general product knowledge |
| Jasper / Copy.ai / Writesonic | AI marketing copy | Indirect — marketing-focused, not Telegram-specific | LOW — designed for ads, landing pages, not Telegram voice | T4: industry knowledge |
| Telegram bots (generic) | Bot platforms | Indirect — e.g., Manybot, Chatfuel | LOW — no parsing/rewriting, only scheduled reposts | T4: industry knowledge |
| Контент-менеджер (человек) | Human delegation | Indirect — hire a writer | MEDIUM — solves the problem but expensive (50-150k ₽/мес) | T5: inferred |
| Другие AI-авторы Telegram | Niche tools | Potentially direct — e.g., AI agents for channel content | LOW — highly fragmented, no known leader | T6: inferred |
| Custom GPT + Zapier + Telegram Bot | DIY pipeline | Turns ChatGPT into a semi-automated content pipeline for $20/month. Covers 60-70% of the pipeline (no dedup, no moderation bot). DIY RSS-to-Telegram + Zapier + ChatGPT for $0-30/month. | MEDIUM — functional overlap, especially as LLMs improve | T6: inferred |
Market structure: Нишевой рынок «AI-агентов для Telegram-каналов» находится в стадии emergence. Никто не захватил категорию. Ранний вход может создать brand-ассоциацию, но рынок слишком мал для защиты.
2. 7 Powers Heat Map
| Power | Our Solution | ChatGPT Direct | Human Writer | Status Quo |
|---|---|---|---|---|
| Scale Economies | Weak (T6) — single user | Strong (T1) — serves millions | None | None |
| Network Effects | None (T6) | Strong (T1) — learns from all users | None | None |
| Counter-Positioning | None (T6) | None | None | None |
| Сложность переходаs | Medium (T5) — data, voice config | Low — no lock-in | High — relationships | Maximum — no tool needed |
| Brand | None | Strong (T1) | Personal brand | Personal brand (Софья herself) |
| Cornered Resource | Weak — voice guide | Talent, compute | Софья's time (scarce) | Софья's time |
| Process Power | Potentially Medium — integrated pipeline | None in this niche | None | None |
Оценка: Ни у одной альтернативы нет структурного преимущества в этой нише. ChatGPT/Claude имеют scale, но не process power для автоматизации контента Telegram. Ручной режим — главный конкурент, его «моат» — привычка и доверие Софьи к собственному процессу.
3. Сложность перехода Decomposition
| From → To | Сложность перехода | Components | Evidence |
|---|---|---|---|
| Status quo → Our agent | Medium | Настройка (1-2 дня), доверие к AI, риск качества | T5: inferred |
| ChatGPT → Our agent | Low-Medium | Бесплатно попробовать, но нужен переезд workflow | T5: inferred |
| Human writer → Our agent | Medium | Увольнение человека, настройка agent, риск | T6: inferred |
Key insight: Switching from status quo to agent requires Софья to trust an AI with her brand voice. This is primarily a trust barrier, not a technical one.
4. Анализ конкуренции (справочно)
Теория агрегации (не применимо)
Telegram-каналы — это не модульный рынок. Каналы — это прямые подписки модели. Этот анализ не применим, так как нет посредника, которого можно «обойти».
Подрывная инновация (не применимо)
Our agent is a sustaining innovation relative to Софья's current workflow — it automates what she already does. It could become disruptive if: - It enables non-writers to create popular channels (new-market disruption) - Quality eventually exceeds human-written content (low-end → premium) - Запроса от 3+ других авторов на такой же инструмент
Current classification: Sustaining for Софья (T5). Potentially disruptive for the broader «Telegram content creator» segment (T6).
5. Что делают другие (competitor moves)
No competitor is actively building a Telegram content agent pipeline as an integrated product. Key players' trajectories:
| Entity | Likely trajectory | Threat timeline | Уверенность |
|---|---|---|---|
| OpenAI/Anthropic | General AI improvements → makes ChatGPT better for this task | 6-12 months (prompt improvement, not dedicated product) | M |
| Telegram | Bot API improvements — may add content tools | 12-24 months | L |
| Open-source | Community agents on GitHub for Telegram automation | Any time — fragmented and low quality | M |
| Human writers | Will compete on quality as AI commoditizes generic content | Ongoing | M |
6. Сравнение возможностей (Сравнение функций)
| Capability | Our Agent | ChatGPT | Jasper | Human Writer | Telegram Bot (generic) |
|---|---|---|---|---|---|
| Parse Telegram channels | ✅ (Telethon) | ❌ | ❌ | ❌ | Partial (RSS only) |
| Classify by rubric | ✅ (LLM classifier) | Manual only | ❌ | ✅ | ❌ |
| Write in specific voice | ✅ (Claude + prompt) | Manual prompt per post | Templates only | ✅ (trained) | ❌ |
| Deduplicate | ✅ (MD5 + embeddings) | ❌ | ❌ | ✅ (manual) | ❌ |
| Score content quality | ✅ (LLM scoring) | ❌ | ❌ | ✅ (editorial judgment) | ❌ |
| Moderation bot | ✅ (Telegram bot) | ❌ | ❌ | N/A | ❌ |
| Schedule + publish | ✅ (cron) | ❌ | ❌ | ✅ (manual) | ✅ |
| Cost | VPS + API | $20/mo | $49-99/mo | 50-150k ₽/мес | Free-$30/mo |
Winner: Our agent has unique features for this specific use case. No competitor offers the integrated pipeline.
Примечание: ChatGPT Scheduled Tasks (OpenAI May 2025) enables scheduled content generation. If this matures, the automation advantage erodes.
7. Сильные и слабые стороныies
Our potential moats:
- Voice adaptation layer — the Софья prompt guide is unusually detailed (proprietary data, T2)
- Integrated pipeline — connecting parsing → classification → rewriting → moderation → publishing is non-trivial to replicate (process power, T5)
- First-mover in niche — if we launch and Софья is satisfied, switching cost grows with usage
Our vulnerabilities:
- No structural moat — no network effects, no data flywheel, no scale economies
- Single-customer dependency — the entire tool serves one channel owner
- Replicability — any developer with Claude API + Telethon could build this in 2-3 weeks
8. Противоречия
| Frameworks | Says | Reconciliation |
|---|---|---|
| 7 Powers (moats) | Our solution has NO strong moats | But: This is a tool, not a platform. It doesn't need moats — it needs to solve one person's problem well. Moat-seeking is premature for a single-customer automation tool. |
| Christensen (disruption) | This is sustaining innovation | But: The approach (integrated pipeline) is disruptive to the fragmented tool ecosystem. Не планируется без явного запроса от 3+ человек. |
9. Рекомендацияs
Рекомендация 1: Строить как инструмент для одного автора, не искать решение-проблема на стадии разработки - Наблюдение [T4, T5]: No structural moats exist. Категория нишевая, платформенный подход избыточен. - Последствие: Попытка построить платформу до решения проблемы Софьи — пустая трата ресурсов. - Response: Build exactly what the spec says. Ship. Validate. THEN decide if it's worth extending. - Уверенность: H — assumes Софья is the only user that matters right now - Watch: Если после запуска 3+ других автора запросят такой же инструмент — пересмотреть стратегию
Рекомендация 2: Защитить voice prompt как IP - Наблюдение [T2]: The voice adaptation prompt is Софья's competitive advantage. - Последствие: If this prompt leaks to competitors, they can replicate the core differentiation in days. - Response: Store prompts in version-controlled, access-restricted config. Do NOT expose in public code. - Уверенность: M - Watch: If a competitor launches a similar bot with Софья-like voice
Рекомендация 3: Мониторить появление AI-агентов для Telegram - Наблюдение [T6]: No current competitor, but barrier to entry is low. - Последствие: If the market heats up, a well-funded competitor can replicate in weeks. - Response: Quarterly competitive scan. Триггер для pivot: появление 3+ аналогичных инструментов. - Уверенность: L — assumes market will grow - Watch: GitHub repos, ProductHunt launches, Telegram bot stores
Реестр допущений
| # | Assumption | Уверенность | Evidence | What would invalidate this |
|---|---|---|---|---|
| 1 | No direct competitor exists | M | T4 (industry knowledge) | Discovery of a Telegram AI agent product |
| 2 | Market is too small for platform | M | T4 (niche Telegram) | 10+ channel owners request the same tool |
| 3 | Voice prompt is defensible | L | T6 (inferred) | Competitor replicates with generic prompting |
| 4 | Софья will prefer agent over manual | M | T2 (stated intent) | She stops using agent after beta |
Критический разбор
Слабость: конкурентный анализ based on inference, not data. Search in Telegram Bot Store, ProductHunt, and GitHub for Telegram AI content bots was NOT conducted. The 'no direct competitors' claim requires verification. Watch indicator: Search results contradict this analysis.
Слабость: Underestimating ChatGPT commoditization. As LLMs improve, a single «write this case study in Софья's voice» prompt in ChatGPT may produce acceptable quality. The moat of «integrated pipeline» erodes if the generation step alone becomes good enough. Watch indicator: Софья tests ChatGPT directly and the result is «good enough.»
Слабость: Single-customer risk. Если Софья перестаёт вести канал, инструмент теряет единственного пользователя. Это не failure mode, это structural limitation. Это внутренний automation tool, не коммерческий SaaS. Watch indicator: Софья publishing frequency drops below 1 post/week.
Триггеры пересмотра
| Триггер | What to re-assess | Timeline |
|---|---|---|
| Competitor AI Telegram agent found | All framework analyses | Search monthly |
| Софья tests ChatGPT for same task | Value proposition, moats | When reported |
| 3+ other authors request tool | Market sizing, platform strategy | When multi-author interest |
| 6 months from now | All claims | 2026-12-18 |
8. Second-Order Effects
- Open-source commoditization: Open-source models (Llama 4) make entry barrier near-zero. If quality reaches parity, the defensibility shifts entirely to distribution and data moats (voice adaptation).
- Platform risk: Telegram may add native AI features (content scheduling, auto-moderation) that erode the niche.
- Content inflation: As AI-generated content proliferates, the value of AI-generated posts may decline. If the market becomes saturated, the unique value shifts from "volume of content" to "authentic voice" — which our agent preserves but competitors may not.
Выходной гейт
- Stage: 03 competitive-market-analysis
- Статус: PRODUCED
- Artifact: product/03-competitive-market-analysis.md
- Решение: No direct competitors, but no structural moats either. Это automation tool, не platform play. Переход к Stage 04 (Journey Map) оправдан — решение строить как интегрированный конвейер для одного автора.
Карта рабочего процесса: Софья — ежедневное создание контента для @pishu_pro
Persona: Софья Солт, предприниматель, 12 лет в маркетинге, соло-автор канала Goal: Ежедневно публиковать качественный контент в авторском стиле Scope: Полный цикл создания одного поста (ежедневный recurring loop) Journey type: Cyclical (ежедневно повторяется) WARNING: All emotional data (feelings, pains, emotions) is hypothetical. No diary study or interview was conducted with Софья. Do not treat as validated user research.
Evidence base: Hypothesis (no direct interview conducted), гипотетические элементы помечены [Hypothesis]
Основные выводы
Софья проходит 6-этапный цикл создания каждого поста: поиск → оценка → адаптация → модерация → публикация → анализ. Самые болезненные точки — поиск релевантных кейсов (30-60 мин/день) и адаптация в авторский голос (60-90 мин/пост). Момент истины — решение, публиковать ли пост: здесь Софья оценивает качество и решает, соответствует ли он стандартам канала. AI-агент автоматизирует 4 из 6 этапов, оставляя за Софьей только модерацию (быстрый approve/reject). Ключевая гипотеза: Софья будет доверять AI-контенту, если процент отклонения <30%.
Persona
Софья Солт, предприниматель, 12 лет в маркетинге. Ведёт канал «Бизнес без людей» (@pishu_pro) соло — сама находит темы, пишет, редактирует, публикует. Эксперт по AI-автоматизации, делегировала рутину нейросетям. Аудитория — предприниматели 30-45 лет. Ценит аутентичность и уникальный голос. Время — критический ресурс. Технически подкована (использует AI-инструменты).
Границы процесса
Включено: Полный цикл создания одного контент-поста от поиска идеи до публикации Исключено: Стратегия канала (месячный контент-план), управление аудиторией, взаимодействие с подписчиками в комментариях
1. Stages
| # | Stage | Goal | Длительность (manual) | Длительность (with agent) | Триггер | Критерий выхода |
|---|---|---|---|---|---|---|
| 1 | Ищет | Найти бизнес-кейс для поста | 30-60 мин | 0 мин (авто) | Потребность в контенте | Релевантный кейс найден |
| 2 | Оценивает | Определить, стоит ли кейс поста | 10-20 мин | 0 мин (авто) | Кейс найден | Кейс принят или отклонён |
| 3 | Адаптирует | Переписать в голосе Софьи | 60-90 мин | 0 мин (авто) | Кейс одобрен к адаптации | Текст готов к модерации |
| 4 | Модерирует | Проверить качество и стиль | 15-30 мин | 10-15 мин (check only) | Текст написан | Решение: публиковать/править/отклонить |
| 5 | Публикует | Разместить пост в канале | 5-10 мин | 0 мин (авто) | Пост одобрен | Пост опубликован |
| 6 | Анализирует | Оценить реакцию аудитории | 5-10 мин | 5-10 мин | Пост опубликован | Решено, стоит ли повторять формат |
2. Touchpoints
| Stage | Touchpoint | Channel | What happens |
|---|---|---|---|
| Ищет | Telegram-каналы-источники | Telegram | Просматривает посты из других каналов |
| Ищет | Закладки / saved messages | Telegram | Проверяет отложенные ссылки |
| Ищет | Личные сообщения | Telegram | Подписчики присылают кейсы |
| Оценивает | Чат с собой / заметки | Telegram | Быстрая оценка «годен/не годен» |
| Адаптирует | Редактор (Notes/Telegram/Tools) | Various | Пишет черновик, правит |
| Модерирует | Превью поста | Telegram | Смотрит, как выглядит пост |
| Публикует | Telegram channel | Telegram | Отправляет пост |
| Анализирует | Просмотры / реакции | Telegram | Смотрит статистику |
3. Emotional Curve
| Stage | Dominant emotion (manual) | Evidence Source | Source | Dominant emotion (with agent) | Evidence Source |
|---|---|---|---|---|---|
| Ищет | Усталость, скука (поиск — рутина) | Hypothesis (no direct interview conducted) | Concept describes time burden | Снятие напряжения | Hypothesis (no direct interview conducted) |
| Оценивает | Надежда (найти хороший кейс) | Hypothesis (no direct interview conducted) | N/A | Ожидание | Hypothesis (no direct interview conducted) |
| Адаптирует | Творческое удовлетворение + усталость | Hypothesis (no direct interview conducted) | Concept | Нейтральное (не участвует) | Hypothesis (no direct interview conducted) |
| Модерирует | Тревога (достаточно ли хорошо?) | Hypothesis (no direct interview conducted) | Voice guidelines show perfectionism | Контроль (approve/reject) | Hypothesis (no direct interview conducted) |
| Публикует | Гордость + облегчение | Hypothesis (no direct interview conducted) | N/A | Доверие | Hypothesis (no direct interview conducted) |
| Анализирует | Интерес, любопытство | Hypothesis (no direct interview conducted) | N/A | Интерес + проверка AI | Hypothesis (no direct interview conducted) |
Примечание: Emotional data is largely hypothetical — no formal research (interviews, diary study) was conducted with Софья. Recommend validation.
4. Болевые точки and Ключевые моменты
| Stage | Pain / Moment | Severity (1-5) | Evidence | Последствие |
|---|---|---|---|---|
| Ищет | TRASH — ручной поиск занимает 30-60 мин/день | 4 | T2: concept (3-5h/day total) | Highest-impact automation target |
| Оценивает | Noise — много нерелевантного контента | 3 | T3: spec has content filter module | Classifier + keyword filter needed |
| Адаптирует | TRASH — самая трудоёмкая часть: 60-90 мин | 5 | T2: concept (voice adaptation is key) | Most technically challenging — prompt quality is critical |
| Модерация | Ключевой момент — решение о публикации | 5 | T2: voice requirements detail | Софья должна доверять AI. Если >30% отклонений — agent не работает. |
| Публикация | Технические сбои (FloodWait, ошибки) | 2 | T3: error handling spec | Handled by retry logic and alerting |
| Анализ | Нет системного сбора метрик | 2 | T3: daily_stats table exists | Add basic analytics dashboard |
5. Opportunities
| Stage | Opportunity | Product change | Effort | Impact |
|---|---|---|---|---|
| Ищет | Автоматический парсинг каналов-источников | Module 1 (Parser) | Medium | Eliminates 30-60 min/day |
| Оценивает | AI-классификация: is_case + rubric | Module 3 (Filter) + Module 7 (Rubricator) | Medium | Eliminates 10-20 min/day |
| Адаптирует | AI-переписывание в голосе Софьи | Module 6 (Editor) | High (prompt engineering) | Eliminates 60-90 min/post |
| Модерирует | Бот модерации с кнопками Approve/Reject | Module 9 (Moderator) | Medium | Reduces 15-30 → 10-15 min |
| Публикация | Автоматическая публикация по расписанию | Module 11 (Publisher) | Low | Eliminates 5-10 min/day |
| Анализ | Ежедневная статистика | daily_stats | Low | Better content decisions |
6. Visual (Mermaid)
flowchart LR
A[1. Ищет кейс\n30-60 мин] --> B[2. Оценивает\n10-20 мин]
B -- Негоден --> A
B -- Годен --> C[3. Адаптирует в голос\n60-90 мин]
C --> D[4. Модерирует\n15-30 мин]
D -- Правит --> C
D -- Отклоняет --> A
D -- Одобряет --> E[5. Публикует\n5-10 мин]
E --> F[6. Анализирует\n5-10 мин]
F --> A
C REM — with AI agent:
flowchart LR
subgraph Agent
P[Парсинг] --> F[Фильтр+Классиф.]
F --> R[Редактор AI]
end
subgraph Софья
M[Модерация бот\n10-15 мин]
end
subgraph Auto
S[Расписание] --> PB[Публикация]
end
R --> M
M -- Approve --> S
M -- Reject/Edit --> P
S --> PB --> A[Анализ\n5-10 мин]
A --> P
7. Пробел в данныхs
| Gap | Impact | Recommended research |
|---|---|---|
| Actual time per stage (manual) | Unknown baseline → unknown ROI | Diary study: Софья logs time for 1 week |
| Софья's emotional state per stage | All emotional data is hypothetical | Post-task interview (3-5 days) |
| Audience reaction to AI-generated content | Unknown if quality is acceptable | A/B blind test with 50 subscribers |
| Most productive source channels | Parser config unknown | Test parse 20 channels, rank by yield |
| Calibration dataset | No blind baseline for Софья's approval rate | Before production, create a blind set of 50 posts (25 human-written, 25 AI) to establish Софья's actual approval baseline and detect bias |
Выходной гейт
- Stage: 04 discover-journey-map
- Статус: PRODUCED
- Artifact: product/04-discover-journey-map.md
- Решение: Journey clearly maps 6 stages; AI agent automates 4/6 stages. Самая высокая боль — поиск (30-60 мин) и адаптация (60-90 мин). Ключевой момент — модерация: если >30% отклонений, agent не работает. Переход к Stage 05 (Оценка рынка (справочно)) оправдан.
Обзор рынка: AI-агенты контента для Telegram-каналов (справочно)
Инструмент: AI-агент автоматизации контента для Telegram-канала @pishu_pro Текущий статус: Внутренний инструмент (1 пользователь) Назначение этого обзора: Справочная оценка ниши — для информирования решения, не для бизнес-плана Date: 2026-06-18
Основные выводы
Инструмент строится для одного автора (Софьи), не для продажи. Ниже приведена справочная оценка потенциального рынка на случай, если в будущем появится запрос на коммерциализацию. В текущем виде все цифры — T4-T6 (оценки, не данные).
TAM (авторы активных Telegram-каналов, нуждающихся в AI-контенте) оценивается в 300-500 млн руб/год на российском рынке — при условии коммерциализации как SaaS. SAM — 30-60 млн руб/год. SOM — 3-9 млн руб/год при 100-300 клиентах.
Важное предупреждение: Все цифры — [EVIDENCE-LIMITED] (T4-T6). Рынок только формируется, публичных отчётов нет. Цифры — порядок величины, не точный прогноз. В текущем плане коммерциализация не предусмотрена.
Определение рынка (справочно)
Рынок: Инструменты AI-автоматизации контента для Telegram-каналов на русском языке.
Включено: - AI-агенты, которые автоматизируют поиск, адаптацию и публикацию контента - Telegram-каналы в сегментах: бизнес, предпринимательство, маркетинг, технологии, образование, экспертные ниши - Авторы, ведущие каналы соло или с минимальной поддержкой
Исключено: - Парсеры/агрегаторы без AI-генерации (просто копируют контент) - Инструменты для массового спама - Международный рынок (English-language channels) - Enterprise-решения для медиахолдингов
Сверху вниз (справочно)
| Layer | Value (₽/year) | Method | Source | Уверенность |
|---|---|---|---|---|
| TAM | 300-500M | Общее число Telegram-каналов × % активных авторов × annual value per author | T4: Telegram 900M MAU; ~5% active channels (est. 10M+); ~10% have 1k+ subscribers | LOW — all layers are estimates |
| SAM | 30-60M | TAM × 10% (только бизнес/экспертные RU-каналы с аудиторией 1k-100k) | T5: proportion inferred from channel directories | LOW |
| SOM | 3-9M | SAM × 10-15% (100-300 клиентов по 30k ₽/год) | T5: market share assumption for niche product | LOW |
Методология: - Telegram MAU 900M → ~2% создают контент = ~18M content-creating accounts - ~10% ведут тематические каналы с регулярным контентом = ~1.8M - RU-сегмент ≈ 5% = ~90k активных авторов тематических каналов - Средняя цена SaaS-аналога: 3k-5k ₽/мес (справочно, сами не продаём) - TAM = 90k × 48k ₽ (среднее) ≈ 4.3 млрд ₽ [но: это максимум; реально рынок меньше] - Корректировка: только авторы, которые (а) публикуют регулярный контент и (б) могут платить за AI — ~10% → 430M ₽
Sensitivity: При 5% penetration → 215M; при 20% → 860M. Low-end: 300M, high-end: 500M.
Снизу вверх (справочно)
| Segment | # potential customers | Price ref (year) | Potential (₽/year) | Assumption |
|---|---|---|---|---|
| Бизнес/маркетинг каналы (RU) | 1,000-10,000 (T6 — no catalog consulted) | 36,000 (3k ₽/мес) | 108M-180M | 3k ₽/мес — сопоставимо с ChatGPT Plus или Telegram Premium |
| Образовательные/экспертные каналы | 2,000-3,000 | 24,000 (2k ₽/мес) | 48M-72M | Ниже платёжеспособность, выше ценность |
| Медиа/новостные каналы | 1,000-2,000 | 60,000 (5k ₽/мес) | 60M-120M | Выше частота публикаций |
| Total SAM (bottom-up) | 6,000-10,000 | 24k-60k | 216M-372M | — |
SOM (Year 1-2) — reference, no commercialization planned: - При цене 2k-3k ₽/мес и 100-300 клиентов - Potential: 2.4M-10.8M ₽/год - При 70% gross margin: 1.7M-7.6M ₽/год contribution
Примечание: Bottom-up может быть точнее top-down в этом рынке, так как базируется на количестве реальных покупателей (ниша), а не на процентах от огромной базы.
Синтез подходов
| Framework | TAM | SAM | SOM | Уверенность |
|---|---|---|---|---|
| Top-down | 300M-500M ₽ | 30M-60M ₽ | 3M-9M ₽ | LOW |
| Bottom-up | 216M-372M ₽ | 216M-372M ₽ | 2.4M-10.8M ₽ | LOW |
| Comparable market | N/A — no comparable product exists | N/A | N/A | N/A |
Convergence: Bottom-up TAM (216M-372M) значительно ниже top-down TAM (300M-500M). Причина: top-down включает неподходящие сегменты. Bottom-up реалистичнее для этой ниши.
Divergence: Factor of ~2x между TAM рамками — ожидаемо для новой категории без публичных данных.
Synthesized estimate: - TAM: 200M-400M ₽/год - SAM: 30M-60M ₽/год (бизнес/экспертные каналы) - SOM: 2.4M-10.8M ₽/год (100-300 клиентов при 2-3k ₽/мес) - Уверенность: LOW — все цифры T4-T6
CRITICAL CAVEAT: Each layer multiplies percentages that are author estimates (T6). Cumulative error is not accounted for. Real TAM could be 20M-4B — the range reflects absence of data, not precision.
Анализ чувствительности
| Variable | Low (-50%) | Mid (base) | High (+50%) | Impact on SOM |
|---|---|---|---|---|
| # потенциальных клиентов | 3,000 | 6,000 | 9,000 | -50% / +50% |
| Цена (₽/мес) | 1,500 | 2,500 | 4,000 | -40% / +60% |
| Conversion rate | 2% | 5% | 10% | -60% / +100% |
| Market readiness (will channels adopt AI?) | 1% penetration | 3% | 5% | -67% / +67% |
Range: SOM может составлять от 1M ₽/год (консервативно) до 15M ₽/год (оптимистично).
Ключевые допущения
| # | Assumption | Source | Уверенность | Sensitivity |
|---|---|---|---|---|
| 1 | 6k-10k RU каналов подходят для такого инструмента | T5 (inferred from channel directories) | LOW | Влияет на потенциал |
| 2 | Авторы каналов готовы платить 2k-3k ₽/мес | T6 (inferred from SaaS benchmarks) | LOW | Влияет на SOM (справочно) |
| 3 | AI-контент будет принят аудиторией каналов | T6 (inferred — hypothesis) | LOW | Определяет жизнеспособность |
| 4 | Telegram не заблокирует парсинг каналов | T6 | LOW | Риск для всего рынка |
| 5 | Рынок будет расти (AI adoption в контенте) | T4 (general AI trend) | MEDIUM | Определяет time-to-market |
Уверенность and Limitations
Most confident: ГИПОТЕЗА — нет ни одного существующего аналога для референса. Реальный рынок может быть нулевым. Least confident: Все цифры — T4-T6. Нет ни одного T1-T2 источника по объёму или платёжеспособности.
Что повысило бы confidence: 1. Опрос 100+ авторов Telegram-каналов: готовы ли платить за AI-контент? 2. Анализ TGStat / Telemetr по количеству активных каналов по категориям 3. Если возникнет запрос на коммерциализацию: предложить MVP 10 авторам, измерить интерес
Analysis NOT addressing: - Конкуренция (бесплатные AI-инструменты могут commoditize рынок) - Regulatory: ФЗ №258 (AI-контент маркировка), 152-ФЗ (персональные данные), РКН рекомендации, Бернская конвенция + ГК РФ (авторское право), законодательство о значимых сайтах (зарубежные API), Telegram может изменить API - Time-to-market (если рынок вырастет через 2 года, early entry может не окупиться)
Рекомендацияs
- Не коммерциализировать сейчас. Рынок слишком мал и невалидирован. Строить как внутренний инструмент для @pishu_pro.
- Мониторить спрос: если 3+ других автора запросят такой инструмент — сигнал к productization.
- Зафиксировать baseline: через 6 месяцев пересчитать sizing, если рынок изменится.
- Opportunity cost check: время на productization (3-6 месяцев dev) не окупится при SOM 2.4M-10.8M ₽/год, если это не side-project с минимальными затратами.
Выходной гейт
- Stage: 05 discover-market-sizing
- Статус: PRODUCED
- Artifact: product/05-discover-market-sizing.md
- Решение: Рынок существует, но мал и невалидирован. Нет оснований для немедленной коммерциализации. Строить как internal tool. Transition to Define phase оправдан — product strategy ясна.
Примечание: JTBD canvas построен на основе документов (концепция + ТЗ) и наблюдений канала. Emotional/social jobs — inference (T6).
Задачи (JTBD) Canvas: Создание контента для Telegram-канала
Job Overview
Job Title: Создание регулярного экспертного контента в авторском стиле Date: 2026-06-18 Author: PM Pipeline (auto) Research Basis: Концепция канала (T2), техническое ТЗ (T3), наблюдение за контентом канала (T1)
Кто выполняет
Who: Софья Солт — предприниматель, 12 лет в маркетинге, эксперт по AI-автоматизации, соло-автор канала.
Key Characteristics: - Соло-автор: сама находит темы, пишет, редактирует, публикует - Высокий стандарт качества: уникальный голос — key asset канала - Технически подкована: использует AI, понимает возможности и ограничения - Ценит время: делегировала рутину нейросетям (в других аспектах бизнеса)
Not Defined By: - Количество подписчиков (качество > количества) - Формат контента (не новостная лента, а аналитика/разборы) - Коммерческая цель канала (канал не monetized напрямую)
The Circumstance
When does this job arise? Каждый день, обычно утром — нужно решить, что публиковать сегодня. Или вечером — подготовить пост на завтра.
Where does this happen? В Telegram: чтение каналов-источников, заметки, черновики. Мобильный телефон + компьютер.
Frequency: Ежедневно, 2 публикации в день (слоты 10:00 и 19:00 МСК).
Urgency: Высокая — если контент не готов к слоту, слот пропускается, аудитория теряет привычку.
Описание задачи
"Когда наступает время публикации, а готового поста нет, я хочу быстро найти интересный бизнес-кейс, переработать его в своём стиле и опубликовать, чтобы канал оставался живым, полезным и аутентичным без того, чтобы я тратила полдня на один пост."
Функциональная задача
What is the practical task to accomplish?
Создать 1-2 качественных поста в день в узнаваемом стиле @pishu_pro, основанных на реальных бизнес-кейсах.
Definition of "Done": - Пост опубликован в канале в запланированное время - Текст в голосе Софьи (читатель не отличает от ручного) - Кейс содержит: заголовок, подводку, разбор, CTA-вопрос - Источник указан (явная ссылка) - Пост прошёл модерацию (личную или AI)
Key Steps in the Job: 1. Поиск: просмотр каналов-источников, поиск релевантного кейса 2. Оценка: решить, стоит ли кейс поста (is_case = true?) 2a. Дедупликация/фильтрация дубликатов (если тот же кейс уже публиковался) 3. Адаптация: переписать факт кейса в голосе, добавить свой угол, рефлексию 4. Модерация: проверить качество, стиль, факты 5. Публикация: отправить в канал 6. Анализ: оценить реакцию аудитории
Functional Pains: - Поиск кейсов: 30-60 мин на просмотр ленты каналов - Адаптация в стиль: 60-90 мин на переписывание - Решения «публиковать или нет»: тревога, неуверенность - Ограничение частоты: не больше 1-2 постов в день физически
Эмоциональная задача
How do they want to feel?
| Desired Feeling | Why It Matters |
|---|---|
| Творческое удовлетворение | Создание контента — не рутина, а самовыражение |
| Контроль над качеством | Репутация канала построена на качестве; любой спад — риск |
| Гордость за результат | Каждый пост — отражение экспертизы Софьи |
| Свобода от рутины | Время, освобождённое от поиска/адаптации, можно направить на стратегию |
How do they want to avoid feeling?
| Feeling to Avoid | Current Триггер |
|---|---|
| Выгорание от ежедневного конвейера | 3-5 ч/день на контент без выходных |
| Тревога за качество при попытке ускориться | Когда нужно быстро написать пост |
| Вина за пропуск публикации | Когда физически нет времени на пост |
| Разочарование от «стерильного» AI-текста | Когда AI-инструменты пишут не в её голосе |
Emotional Pains: - Перфекционизм: каждый пост — маленький шедевр; отпустить контроль трудно - Страх потери голоса: основное опасение при автоматизации
Социальная задача
How do they want to be perceived?
| Desired Perception | By Whom |
|---|---|
| Эксперт по AI-автоматизации бизнеса | Подписчики канала, коллеги |
| Автор с уникальным голосом и позицией | Подписчики, профессиональное сообщество |
| Человек, который «на своей шкуре» тестирует автоматизацию | Аудитория — это часть контент-стратегии |
What perception do they want to avoid?
| Perception to Avoid | By Whom |
|---|---|
| «Ещё один AI-канал с перепечатками новостей» | Подписчики |
| «Пишет не она — видно, что AI» | Подписчики (потеря доверия) |
Social Context: - @pishu_pro — не просто канал, а демонстрация «business without people» на практике - Софья — публичная фигура в нише AI-автоматизации - Подписчики приходят за экспертизой и аутентичностью
Альтернативные решения
What do customers currently "hire" for this job?
| Solution Type | Solution | Strengths | Weaknesses |
|---|---|---|---|
| Manual/DIY | Софья пишет всё сама | Полный контроль качества и стиля | 3-5 ч/день, выгорание, лимит на частоту |
| Indirect Alternative | ChatGPT / Claude напрямую | Бесплатно/дёшево, быстро | Нужен промпт каждый раз, нет консистентности стиля |
| Human delegate | Нанять контент-менеджера | Полный контроль, человеческое качество | 50-150k ₽/мес, нужно обучить голосу |
| Non-consumption | Публиковать реже | Меньше нагрузки | Потеря аудитории, снижение охватов |
Why Do They Switch? - Текущий процесс отнимает >3 часов в день - Физически невозможно публиковать чаще 2 постов - AI-инструменты становятся достаточно хороши для базовой адаптации
Why Do They Stay? - Контроль качества: только автор знает «тот самый» голос - Доверие: AI может написать не в том тоне — репутационный риск
Критерии выбора
Must-Have (Table Stakes): - Пост звучит как Софья (голос, интонация, лексика) - Контент основан на реальном кейсе (не выдумка AI) - Источник указан и не искажён - Пост безопасен юридически (не копия, а переработка)
Differentiators (Decision Drivers): - Интегрированный pipeline: парсинг → классификация → редактор → публикация (всё в одном) - Voice adaptation: AI знает голос Софьи и пишет в нём без повторных промптов - Модерация в Telegram: удобный approve/reject/edit из телефона
Nice-to-Have: - Аналитика по эффективности разных рубрик - Автоматический разогрев аудитории - Мультиязычность
Выводы
JTBD Hypothesis 1 (unvalidated): Voice authenticity is the hiring criterion, not the feature. Софья «наймёт» AI-агента только если он пишет в её голосе. Экономия времени — важна, но вторична. Если AI пишет «не её голосом», она вернётся к ручному режиму. - Product Последствие: Quality gate перед публикацией — модерация Софьей. Prompt engineering — primary investment.
JTBD Hypothesis 2 (unvalidated): Non-consumption (пропуск публикации) — главный конкурент AI-агента. Если AI-агент не сработает, Софья не переключится на конкурента — она просто будет публиковать реже. Это значит, что мы конкурируем не с альтернативами, а с «ничего не делать» — а для этого инструмент должен быть бесшовным. - Product Последствие: Zero friction в модерации. Approve должен быть одним тапом.
JTBD Hypothesis 3 (unvalidated): «Выгорание» — эмоциональный job, который AI решает, но не должен создавать нового. AI решает functional job (экономия времени). Но если AI создаёт эмоциональное напряжение (тревога за качество, чувство потери контроля), Софья «уволит» AI, несмотря на functional benefits. - Product Последствие: Beta-период критичен: Софья должна чувствовать, что контролирует качество, пока не накопится доверие.
[T6 — inferred from concept document, not validated through interview]
Document References (paraphrased from concept)
«Я хочу, чтобы канал оставался живым и полезным, но не за счёт того, что я трачу полдня на один пост» — Софья Солт (из концепции, парафраз)
«Запрещено писать нейросеточным языком» — из концепции, голос Сони (явное требование к AI)
«Бери из оригинала только ФАКТ и суть — какой инструмент, какая задача, какой результат. И дай свой разбор и угол» — из концепции, инструкция по адаптации
Вопросы для проверки Research
- Какие эмоции Софья реально испытывает на каждом этапе создания поста? (Нужен diary study)
- Подписчики @pishu_pro заметят разницу между ручным и AI-контентом?
- Как Софья оценивает качество поста? Какие критерии?
- Какое минимальное качество AI-поста нужно, чтобы Софья сказала: «да, публикуем»?
- Есть ли у Софья опыт негативного взаимодействия с AI-контентом (другие каналы), который влияет на trust threshold?
Примечание: JTBD claims are document-based hypotheses. Это внутренний инструмент — валидация произойдёт в процессе использования, а не через формальные интервью.
Валидация JTBD
JTBD построен на документах (концепция + ТЗ). Для внутреннего инструмента валидация происходит через бета-тест: Софья использует агента и сообщает, какие задачи он решает, а какие — нет. Если потребуется более глубокая калибровка — можно провести полуструктурированное интервью.
Выходной гейт
- Stage: 06 define-jtbd-canvas
- Статус: PRODUCED
- Artifact: product/06-define-jtbd-canvas.md
- Решение: Core JTBD identified: «писать в голосе» — hiring criterion, а не feature. Non-consumption — главный конкурент. Переход к Stage 07 (Дерево возможностей) оправдан.
Opportunity Solution Tree: AI-агент контента для @pishu_pro
Desired Outcome: Снизить время Софьи на создание контента с 3-5 ч/день до <30 мин/день, сохранив качество и аутентичность на уровне, неотличимом от ручного труда. Date: 2026-06-18
Visual Tree
flowchart TD
O[OUTCOME: Reduce content time\n3-5h → <30 min/day] --> OP1[Opportunity 1:\nAuto-source cases]
O --> OP2[Opportunity 2:\nAuto-classify]
O --> OP3[Opportunity 3:\nAdapt in Sonya voice]
O --> OP4[Opportunity 4:\nStreamline moderation]
O --> OP5[Opportunity 5:\nAuto-publish]
OP1 --> S1a[Telethon parser]
OP1 --> S1b[White-list config]
OP1 --> S1c[Deduplication pipeline]
OP2 --> S2a[Keyword filter]
OP2 --> S2b[LLM classifier is_case]
OP2 --> S2c[Rubricator module]
OP3 --> S3a[Editor prompt chain]
OP3 --> S3b[Voice style guide]
OP3 --> S3c[Quality scorer]
OP4 --> S4a[Moderation bot]
OP4 --> S4b[Edit flow]
OP4 --> S4c[Stats dashboard]
OP5 --> S5a[Cron scheduler]
OP5 --> S5b[Telegram publisher]
OP5 --> S5c[Retry + alerting]
Desired Outcome
Statement: Снизить время Софьи на ежедневное создание контента с 3-5 часов до <30 минут, сохранив voice authenticity на уровне ≥70% аппрува в модерации.
Metrics to track: - Time spent on content per day (самоотчёт / лог) - % approved posts in moderation - Daily publishing rate (posts delivered vs. slots available) - Subscriber engagement (views, reactions — no decline)
Opportunity Branches
Opportunity 1: Автоматический поиск кейсов
Pain: 30-60 мин/день на ручной просмотр каналов-источников
| Evidence | Source |
|---|---|
| 30-60 мин на поиск | T2: concept (3-5h total) |
| Парсерный модуль описан | T3: ТЗ Module 1 (Parser) |
| Dedup описан | T3: ТЗ Module 5 (MD5 + embeddings) |
Solutions:
1. Telethon parser — читает каналы из whitelist, парсит новые посты (effort: Medium)
2. White-list config — config/sources.txt с управляемым списком (effort: Low)
3. Deduplication pipeline — MD5 + semantic embeddings, чтобы не повторяться (effort: Medium)
Risky assumption: Каналы-источники остаются доступны для парсинга.
Opportunity 2: Автоматическая классификация контента
Pain: 10-20 мин на решение «это кейс? Стоит поста?»
| Evidence | Source |
|---|---|
| Filter/keyword модуль | T3: ТЗ Module 2-4 |
| LLM-классификатор | T3: ТЗ Module 3 (is_case) |
| Рубрикатор | T3: ТЗ Module 7 (Rubricator) |
Solutions:
1. Keyword filter — stop-words (скидка, промокод) + include-words (экономия, заменил) (effort: Low)
2. LLM classifier — is_case detection + rubric assignment (effort: Medium)
3. Scoring module — quality score 1-5 for prioritization (effort: Medium)
Risky assumption: LLM-классификатор даёт >90% accuracy на реальных данных.
Opportunity 3: AI-адаптация в голос Софьи
Pain: 60-90 мин/пост на переписывание — самая трудоёмкая часть
| Evidence | Source |
|---|---|
| Voice style guide детально описан | T2: concept (syntax, vocabulary, forbidden patterns) |
| Editor module (Модуль 6) | T3: ТЗ Module 6 |
| Это key hiring criterion | T2: JTBD Canvas (voice = must-have) |
Solutions: 1. Editor prompt chain — Claude Sonnet 4 с voice prompt (effort: High — critical) 2. Style integration — incorporate voice guide into system prompt (effort: Medium) 3. Scoring feedback loop — auto-score post quality, route low-scoring posts back for rewrite (effort: Medium)
Risky assumption: Claude может стабильно воспроизводить голос Софьи на разнообразных кейсах.
Opportunity 4: Удобная модерация
Pain: 15-30 мин на проверку поста
| Evidence | Source |
|---|---|
| Moderation bot описан | T3: ТЗ Module 9 |
| 4 кнопки: Approve / Edit / Skip / Queue | T3: ТЗ |
| Trust в AI — ключевая emotional job | T2: JTBD Canvas |
Solutions: 1. Moderation bot — Telegram bot с inline-кнопками (effort: Medium) 2. Edit flow — возможность править пост перед публикацией (effort: Medium) 3. Stats dashboard — daily_stats с метриками качества (effort: Low)
Risky assumption: Софья будет проверять бот в течение дня (не забывает).
Opportunity 5: Автоматическая публикация
Pain: 5-10 мин/день на отправку — small, но прерывает поток
| Evidence | Source |
|---|---|
| Publisher module описан | T3: ТЗ Module 11 (Publisher) |
| Cron scheduler | T3: ТЗ Module 12 |
| 2 слота: 10:00 и 19:00 МСК | T3: ТЗ |
Solutions: 1. Cron scheduler — 08:00 parse, 08:45 moderation alert, 10:00 & 19:00 publish (effort: Low) 2. Retry error handling — 3 attempts, alert on failure (effort: Low) 3. Post queue — FIFO, skip if no approved post for slot (effort: Low)
Risky assumption: Telegram API доступен в слотах публикации (решено retry logic).
Prioritization
| Priority | Opportunity | Impact | Уверенность | Effort | ICE Score | Go first? |
|---|---|---|---|---|---|---|
| 1 | O1: Auto-source cases | High (30-60 min saved) | H (well-defined) | Medium | 7/10 | ✅ YES — prerequisite for all other modules |
| 2 | O2: Auto-classify | Medium (10-20 min) | H (simple filtering) | Medium | 6/10 | ✅ YES — filters noise before expensive LLM work |
| 3 | O3: Voice adaptation | Critical (60-90 min) | M (quality unproven) | High | 5/10 | ✅ YES but with beta gate |
| 4 | O4: Moderation | Medium (15-30 min) | M (adoption unknown) | Medium | 5/10 | ✅ YES — enabler for trust |
| 5 | O5: Auto-publish | Low (5-10 min) | H (simple cron) | Low | 6/10 | ✅ YES but last |
Critical path: O1 → O2 → O3 → O4 → O5 (sequential dependency — downstream modules need upstream data).
Experiments Backlog
| # | Hypothesis | Test | Критерии успеха | Effort |
|---|---|---|---|---|
| E1 | Telethon может парсить 5 каналов без FloodWait | Run parser for 3 days on 5 channels | <3 FloodWait errors/day | Low |
| E2 | LLM classifier определяет is_case с >90% accuracy | Run 100 posts through classifier, check manually | >90% precision | Medium |
| E3 | Claude пишет в голосе Софьи с качеством, приемлемым для публикации | 10 test cases → Софья оценивает | ≥7/10 approved | Medium |
| E4 | Софья использует модерационный бот ежедневно | 2-week beta test | >80% дней с moderation action | Low |
Learning Log
| Date | What We Learned | Decision |
|---|---|---|
| 2026-06-18 | Tree created from concept + ТЗ. Все предположения невалидированы. | Start with E1-E3 before full build |
Что дальше
- Week 1: Time-tracking (Софья logs content time for 7 days) — validate baseline
- Week 1-2: Test E1 (parser prototype on 5 channels)
- Week 2: Test E3 (Claude writes 10 posts in Софья's voice)
- Week 3-4: Full build per ТЗ (123.md)
- Week 5-6: Beta: full pipeline with Софья moderating all posts
Выходной гейт
- Stage: 07 define-opportunity-tree
- Статус: PRODUCED
- Artifact: product/07-define-opportunity-tree.md
- Решение: Sequential dependency confirmed: parser → classifier → editor → moderator → publisher. Критический path: voice adaptation quality (opportunity 3) — самый рискованный и самый ценный.
Приоритеты разработки: AI-агент контента для @pishu_pro
Decision context: MVP build order — какие модули строить в первую очередь Date: 2026-06-18
Framework Applicability
| Framework | Status | Rationale |
|---|---|---|
| ICE | ✅ RUN | Всегда применим; используем coarse estimates |
| MoSCoW | ✅ RUN | Чёткий scope: что входит в MVP vs post-MVP |
| RICE | ❌ SKIPPED | Нет количественных данных по reach (количество пользователей/кейсов) |
| Weighted Scoring | ❌ SKIPPED | Один стейкхолдер (Софья), нет множественных критериев |
| Kano | ❌ SKIPPED | Нет customer research data (опросов подписчиков) |
Candidate Items (модули из ТЗ)
| # | Module | Description | ТЗ ref |
|---|---|---|---|
| M1 | Парсер | Telethon парсинг каналов из whitelist | Module 1 |
| M2 | Фильтр ключевых слов | Include/exclude keywords | Module 2 |
| M3 | LLM-классификатор is_case | LLM определяет, является ли пост бизнес-кейсом | Module 3 |
| M4 | Фильтр is_case | Второй фильтр на is_case | Module 4 |
| M5 | Дедупликация | MD5 + semantic embeddings | Module 5 |
| M6 | Редактор | Claude пишет пост в голосе Софьи | Module 6 |
| M7 | Рубрикатор | Классификация по рубрикам | Module 7 |
| M8 | Скоринг | Quality score 1-5 | Module 8 |
| M9 | Бот модерации | Telegram bot с Approve/Edit/Skip | Module 9 |
| M10 | Статистика | daily_stats таблица | Module 10 |
| M11 | Публикатор | Telegram API publish + scheduler | Module 11 |
| M12 | Конфигурация | .env, sources.txt, scheduler | Module 12 |
ICE Scoring
| Module | Impact (1-10) | Уверенность (1-10) | Ease (1-10) | ICE Score | Notes |
|---|---|---|---|---|---|
| M1: Парсер | 9 | 9 | 7 | 25 | Core dependency. Telethon is well-documented |
| M2: Keyword filter | 6 | 9 | 9 | 24 | Simple regex, low effort |
| M3: LLM classifier | 8 | 6 | 5 | 19 | Prompts need tuning, quality unknown |
| M4: Фильтр is_case | 5 | 5 | 6 | 16 | Overlap with M3, could merge |
| M5: Dedup | 7 | 8 | 9 | 24 | MD5 is trivial, embeddings medium |
| M6: Редактор | 10 | 4 | 3 | 17 | Critical but highest risk & effort |
| M7: Рубрикатор | 5 | 5 | 6 | 16 | Useful but not critical for MVP |
| M8: Скоринг | 6 | 4 | 5 | 15 | Quality gate but can defer |
| M9: Бот модерации | 7 | 8 | 6 | 21 | Well-defined, moderate effort |
| M10: Статистика | 4 | 7 | 8 | 19 | Simple SQL queries |
| M11: Публикатор | 8 | 9 | 8 | 25 | Cron + Telegram API, low complexity |
| M12: Конфиг | 9 | 9 | 9 | 27 | .env + sources, foundational |
MoSCoW Binning
| Bucket | Modules | Rationale |
|---|---|---|
| Must | M1 (Parser), M5 (Dedup), M6 (Editor), M11 (Publisher), M12 (Config) | Core pipeline: parse → edit → publish. Без них MVP не работает |
| Should | M2 (Keyword filter), M3 (LLM classifier), M5 (Dedup — embeddings) | Фильтры и качество; strong recommendation for MVP |
| Could | M7 (Rubricator), M8 (Scoring), M10 (Stats) | Улучшают, но MVP работает и без них |
| Won't | M4 (duplicate is_case filter) | Merge with M3 — отдельный модуль не нужен |
Recommended MVP modules: M1, M2, M3, M5, M6, M9, M11, M12 (8 из 12 модулей)
Cross-Framework Comparison
| Module | ICE Rank | MoSCoW | Verdict |
|---|---|---|---|
| M12: Config | #1 (27) | Must | ✅ BUILD FIRST |
| M1: Parser | #2 (25) | Must | ✅ BUILD FIRST |
| M11: Publisher | #2 (25) | Must | ✅ BUILD |
| M2: Keyword filter | #4 (24) | Should | ✅ BUILD |
| M5: Dedup | #4 (24) | Should | ✅ BUILD |
| M9: Bot moderation | #6 (21) | Should | ✅ BUILD |
| M3: LLM classifier | #7 (19) | Should | ✅ BUILD |
| M10: Stats | #7 (19) | Could | ⏸️ DEFER |
| M6: Editor | #9 (17) | Must | ✅ BUILD (high risk, start early) |
| M7: Rubricator | #10 (16) | Could | ⏸️ DEFER if combined with M3 |
| M4: is_case filter 2 | #11 (16) | Won't | ❌ SKIP — merge with M3 |
| M8: Scoring | #12 (15) | Could | ⏸️ DEFER |
Divergence: M6 (Editor) ranks #1 by impact (10) but #9 by ICE because of low ease (3) and confidence (4). MoSCoW says Must. Рекомендация: start Editor early despite risk — it's the defining feature.
Assumptions
| # | Assumption | Impact if wrong | Mitigation |
|---|---|---|---|
| 1 | Telethon стабильно работает с whitelist-каналами | M1 (Parser) не работает → весь pipeline стоит | Test E1: 3-day parser run |
| 2 | Editor prompt (M6) даёт приемлемое качество | MVP не может быть запущен | Test E3: 10 test cases before full build |
| 3 | Bot moderation (M9) usable на мобильном | Софья не проверяет посты | Test E4: 2-week beta |
| 4 | Telegram API не меняется существенно | Publisher ломается | Error handling + monitoring |
| 5 | Voice prompt versioning не требуется | Невозможность отката при деградации качества после редактирования prompt | Ability to roll back to previous prompt version if quality degrades after edits |
Рекомендация
Build sequence: 1. Phase 1 (Foundation): M12 (Config) → M1 (Parser) → M5 (Dedup) → M2 (Keyword filter) — Dedup и Keyword filter обязательны: без них пайплайн публикует дубликаты и рекламу. 2. Phase 2 (Core): M3 (LLM classifier) → M6 (Editor) [with prompt testing] 3. Phase 3 (Delivery): M9 (Moderation bot) → M11 (Publisher) 4. Post-MVP: M10 (Stats) + M7 (Rubricator, merged into M3) + M8 (Scoring)
Rationale: Sequential dependency требует parser→classifier→editor→moderator→publisher. Parser — foundation, editor — critical path (highest risk). Build in dependency order, test editor quality early.
Graduated trust roadmap:
| Phase | Workflow | Criteria to advance |
|---|---|---|
| Phase 0: Human-only | Софья создаёт каждый пост самостоятельно | Базовый уровень established |
| Phase 1: AI suggests, human reviews | AI предлагает draft, Софья ревьюит каждый элемент | 2 consecutive weeks at >70% approval |
| Phase 2: AI publishes, human moderates | AI auto-публикует, Софья модерирует (approve/skip) | 2 consecutive weeks at >70% approval |
| Phase 3: Routine autopilot | AI auto-публикует routine рубрики, Софья ревьюит новые/novel категории | 2 consecutive weeks at >70% approval |
| Phase 4: Full autopilot | Полный автопилот с random quality sampling | Софья решает |
Выходной гейт
- Stage: 08 define-prioritization-framework
- Статус: PRODUCED
- Artifact: product/08-define-prioritization-framework.md
- Решение: 8/12 modules for MVP. Build in dependency order: Config → Parser → Filter → Classifier → Editor → Moderator → Publisher. Stats deferred. Rubricator merged with classifier. Dual is_case filter merged.
Стратегия разработки: AI-агент контента для @pishu_pro
Time horizon: 3 months (MVP) + 3 months (validation) Team: 1 developer (by ТЗ) + Софья (product owner) Date: 2026-06-18
Основные выводы
AI-агент — внутренний инструмент для одного автора, не коммерческий продукт. Стратегия: построить pipeline по ТЗ, запустить, проверить. Единственный strategic bet: качество voice должно устроить Софью. Если качество устраивает — решение работает. Если 3+ других автора запросят такой же инструмент — рассмотреть расширение.
Направление
К 2027 году AI-агент @pishu_pro публикует 100% контента канала без участия Софьи в создании, сохраняя voice authenticity на уровне, неотличимом от авторского. Если в течение 2026 года 5+ других авторов запросят аналогичный инструмент — рассмотреть расширение для других авторов.
Strategic Bets
Bet 1: Content Pipeline MVP [CORE]
Hypothesis: Построив pipeline парсинг→фильтр→редактор→модератор→публикатор по ТЗ, Софья сможет сократить время на контент с 3-5 ч/день до <30 мин/день.
| Dimension | Detail |
|---|---|
| Уверенность | HIGH — ТЗ готово, технологии выбраны, dependency chain понятна |
| Investment | ~80% effort (developer time per ТЗ) |
| Kill criteria | Editor quality <50% approval after 2 weeks of beta |
| Timeline | 6-8 weeks development, 2 weeks beta |
| Success | Софья публикует ≥5 posts/week через агента, approval rate ≥70% |
Bet 2: Voice Quality Validation [ENABLER]
Hypothesis: Claude Sonnet 4 с voice prompt может воспроизводить голос Софьи на разнообразных бизнес-кейсах с качеством, достаточным для публикации.
| Dimension | Detail |
|---|---|
| Уверенность | MEDIUM — prompt guide детален, но не тестирован на реальных кейсах |
| Investment | ~10% effort (prompt engineering + 10 test cases pre-build) |
| Kill criteria | 15-20 test cases with 3-tier scoring: >12/20 pass → proceed; 8-12/20 → iterate prompt once; <8/20 → kill. |
| Timeline | Week 1-2 of project (before full Editor build) |
| Success | ≥7/10 test posts approved |
Model monitoring: Upon each Claude Sonnet version update, re-run the 10-test voice validation. Version pinned: claude-sonnet-4-20250514.
Bet 3: Platform Optionality [EXPLORE]
Hypothesis: Если показать MVP 10 другим авторам Telegram-каналов, ≥3 запросят доступ.
| Dimension | Detail |
|---|---|
| Уверенность | LOW — предварительная оценка показала малый рынок, готовность платить не проверена |
| Investment | ~10% effort (after MVP, packaging + outreach) |
| Kill criteria | <3 requests from 10 outreach attempts |
| Timeline | Month 4-6 (post-MVP) |
| Success | 3+ paid signups at 2-3k ₽/мес |
Sequencing Rationale
| Phase | Timeline | Focus | Key deliverable |
|---|---|---|---|
| P0 — Foundation | Weeks 1-2 | Bet 2 (voice validation) + Bet 1 infra | 10 test posts + parser prototype + Dedup (M5) + Keyword filter (M2) |
| P1 — Core Build | Weeks 3-8 | Bet 1 (full pipeline per ТЗ) | Working MVP: parse→classify→edit→moderate→publish |
| P2 — Beta | Weeks 9-10 | Bet 1 validation | 2-week beta with Софья moderating all posts |
| P3 — Decide | Months 3-4 | Review: ship as-is or iterate or platform | Decision gate: continue / pivot / explore Bet 3 |
Why this order: Sequential dependency (pipeline modules chain together). Voice validation first (Bet 2) because it's the highest-risk assumption — if Claude can't write in Софья's voice, building the rest is wasted.
Resource Plan
| Phase | Resource | Allocation | Notes |
|---|---|---|---|
| P0 | Developer | 100% | Prompt engineering + parser prototype |
| P0 | Софья | ~3 hours | Time tracking, test case review |
| P1 | Developer | 100% | Full pipeline build |
| P1 | Софья | ~1 hour/week | Weekly progress check |
| P2 | Developer | 50% | Bug fixes, prompt tuning |
| P2 | Софья | ~15 min/day | Beta moderation |
| P3 | Developer | 0-50% | Depends on decision gate outcome |
Total developer effort: ~8-10 weeks FTE.
NOT Doing (with opportunity costs)
| NOT Doing | Why | Opportunity cost | Revisit trigger |
|---|---|---|---|
| Аналитика и дашборды (M10) | MVP работает без них | Не видим метрики качества | Post-MVP: если Софья запрашивает |
| Рубрикатор (M7) | Поглощается LLM-классификатором | Меньше структурированных данных | Если нужна аналитика по рубрикам |
| Platform / multi-tenant | Рынок не валидирован | Не планируется без явного запроса от 3+ человек | 3+ external requests |
| Mobile app | Telegram — достаточный UI | Нет dedicated UX для управления агентом | После platform decision |
| English-language channels | Не в scope | Больший TAM | После RU-валидации |
Strategic Tensions
| Tension | Resolution |
|---|---|
| Quality vs Speed — Editor нужно и качественно, и быстро | Побеждает Quality: voice validation pre-build, beta gate, полная модерация |
| Build vs Validate — можно строить полный pipeline сразу или валидировать по частям | Компромисс: voice validation (P0) перед полным Editor, parser prototype (P0) перед pipeline |
| Internal tool vs Platform — строить для одного или для многих | Строить для одного. Platform — conditional bet с kill criteria |
Quarterly Gates
| Gate | When | Criteria | Pass | Fail |
|---|---|---|---|---|
| G1: Voice validated | End of Week 2 | ≥7/10 test posts approved by Софья | Continue to full build | Pivot prompt or abort |
| G2: Pipeline works | End of Week 8 | MVP parses, classifies, edits, posts; ≥50% of posts pass without critical quality flags (factual errors, inappropriate tone) | Start beta | Debug → delay |
| G3: Beta passes | End of Week 10 | ≥70% approval rate, Софья uses agent daily | Ship to production | Fail → 3 prompt iterations over 2 weeks → if still <70% → abort, document learnings, return to manual mode. No infinite iteration. |
| G4: Platform signal | Month 4 | ≥3 external requests for tool | Review multi-author feasibility | Stay internal tool |
Реестр допущений
| # | Assumption | Strategic Bet | Уверенность | What invalidates |
|---|---|---|---|---|
| A1 | ТЗ (123.md) описывает правильную архитектуру | Bet 1 | H | Pipeline не работает в production |
| A2 | Claude может писать в голосе Софьи | Bet 2 | M | <5/10 test posts accepted |
| A3 | Софья будет использовать агента регулярно | Bet 1 | M | После beta возвращается к ручному режиму |
| A4 | Другие авторы заинтересованы в таком инструменте | Bet 3 | L | 0 из 10 outreach → interest |
| A5 | Telegram API остаётся стабильным | Bet 1 | H | Breaking API change от Telegram |
Самооценка
Слабость: Single-customer strategy — вся стратегия завязана на одного человека. Если Софья перестаёт вести канал, стратегия теряет смысл. Нет diversification. Mitigation: Bet 3 (platform optionality) как conditional hedge.
Слабость: Quality validation pre-build может быть недостаточной. 10 тестовых кейсов могут не покрыть разнообразие реальных источников. Первый месяц в production может выявить quality gaps. Mitigation: Beta gate (G3) с kill criteria. Если <70% approval — pause, не выпускать в production.
Слабость: Нет альтернативы «Софья не принимает AI-контент». Если G3 fails (approval <70%), стратегия не имеет варианта B. Pause — это не решение, это заморозка. Mitigation: Определить до старта: если G3 fails, пробуем 3 prompt-итерации. Если всё ещё fail — стратегия пересматривается.
Moderator SPOF
Проблема: Софья — единственный модератор. Если она недоступна, пайплайн останавливается.
Mitigations: - Резервный модератор role: Назначить backup-модератора (Софья-назначенное лицо с read-only доступом и ограниченными approve/skip правами). - Режим отпуска: Авто-пауза публикации + уведомление подписчиков при недоступности Софьи >48ч.
Триггеры пересмотра
| Триггер | What to re-assess | Timeline |
|---|---|---|
| Софья rejects >50% posts in beta | Bet 1, Bet 2 | Immediately |
| 3+ external requests for the agent | Bet 3 | 1 month post-launch |
| Telegram API breaking change | Bet 1 architecture | Within 1 week |
| Софья reduces publishing to <1 post/week | Entire strategy | 2 weeks |
Выходной гейт
- Stage: 09 product-strategy
- Статус: PRODUCED
- Artifact: product/09-product-strategy.md
- Решение: One core bet (pipeline MVP) + one enabler (voice validation) + one explore (platform). Sequential build: validate voice → build pipeline → beta → decide. Strategy phase complete; proceed to Metric Design.
Метрики: AI-агент контента для @pishu_pro
Tool: AI content agent for @pishu_pro Measurement context: New launch (internal tool) Date: 2026-06-18
Основные выводы
Ключевая метрика: «Время Софьи на ежедневный контент» (лидирующий) с контр-метрикой «% отклонённых постов в модерации» (качественный guardrail). Успех = Софья тратит <30 мин/день на контент с approval rate ≥70%. Единственный эксперимент перед запуском: A/B тест «человек vs AI» на 10 постах с оценкой Софьи.
Ключевая метрика Evaluation
| Candidate | Value Reflection | Leading (predicts lagging) | Influenceable | Non-gameable | Score |
|---|---|---|---|---|---|
| Время на контент/день | ✅ — прямое отражение ценности | ✅ — снижение ведёт к консистентности | ✅ — pipeline влияет напрямую | ⚠️ — Софья может нелогировать | 4/5 |
| % AI-generated posts | ❌ — не отражает ценность | ❌ — лаггирующий | ✅ | ✅ | 2/5 |
| Частота публикаций | ⚠️ — partial | ✅ — ведёт к росту аудитории | ✅ — pipeline контролирует | ❌ — можно публиковать мусор | 3/5 |
| Доля одобрения | ❌ — качество, не ценность | ✅ — предсказывает долгосрочное принятие | ✅ — prompt engineering | ✅ — Софья честно оценивает | 3/5 |
Selected NSM: «Время Софьи на ежедневный контент» Rationale: Прямая связь с ценностью (экономия времени). Влияние инструмента прямое (pipeline заменяет ручной труд). Goodhart risk: Софья может неточно логировать.
Metric Hierarchy
Ключевая метрика: Время Софьи на контент/день (<30 мин)
├── L1: Daily content production time (30-60-90 min)
│ ├── L2: Time on search (target: 0 min — fully automated)
│ ├── L2: Time on editing (target: 0 min — fully automated)
│ └── L2: Time on moderation (target: 10-15 min)
├── L1: Post quality
│ ├── L2: Доля одобрения (target: ≥70%)
│ ├── L2: Post quality score (AI, 1-5; target: ≥3.5 avg)
│ └── L2: % posts requiring edits before approval (target: <30%)
├── L1: Publishing reliability
│ ├── L2: Posts published / slots available (target: ≥80%)
│ └── L2: Publishing error rate (target: <5%)
└── L1: Audience health (guardrail)
├── L2: Views per post (no decline trend)
└── L2: Reactions per post (no decline trend)
Опережающие / запаздывающие Indicator Pairs
| Leading | Lagging | Temporal Lag | Цель | Notes |
|---|---|---|---|---|
| Time on search (min) | Daily content time (min) | Immediate (same day) | 0 min | Когда search=0, агент работает |
| Доля одобрения (%) | Sustained agent usage (weeks) | 1-4 weeks | ≥70% | Если approval rate падает, Софья бросит агента |
| Editor quality score (1-5) | Доля одобрения | 1 day | ≥3.5 avg | Предсказывает approval до модерации |
| % skipped posts | Publishing rate | Same day | <20% | High skip rate → pipeline issues |
Контр-метрикаs (Goodhart Resistance)
| Primary Metric | Goodhart Risk | Контр-метрика | Guardrail |
|---|---|---|---|
| Time saved (↓ = good) | Софья может перестать полностью проверять контент | Доля одобрения (target: ≥70%) | Если approval <70% при time <30 min → ALERT: quality sacrificed for speed |
| Доля одобрения (↑ = good) | Софья может одобрять low-effort посты | Views per post (no decline) | Если approval rate >90% И views <80% baseline → ALERT: quality drift |
| Daily publishing rate (↑ = good) | Публикация любого контента | Quality score (target ≥3.5) | Если publish >90% И quality <3.0 → ALERT: pipeline produces noise |
План экспериментов
Experiment 1: Voice Quality Validation (pre-build) | Parameter | Value | |---|---| | Type | Single-arm: 10 test cases written by Claude in Софья's voice | | Выборка | 10 business cases randomly selected from Софья's sources | | Success criteria | ≥7/10 posts approved by Софья for publication | | Длительность | 1 session (Софья reviews all 10 at once) | | Правило решения | Pass (≥7): proceed to full build. Fail (<5): rethink prompt. Marginal (5-6): iterate prompt once | | Статистическая сила | N/A — qualitative gate, not A/B |
This is a gate, not a suggestion. No full Editor build shall begin before Experiment 1 passes with ≥7/10 approved posts.
Cross-reference with Stage 01: Формулировка проблемы overstates confidence (H). This measurement framework correctly pegs confidence at M. Treat PSF tests in Stage 01 as CONDITIONAL PASS pending Experiment 1.
Experiment 2: Beta Доля одобрения (post-build) | Parameter | Value | |---|---| | Type | Наблюдениеal: Софья moderates all agent posts for 2 weeks | | Выборка | All posts generated by agent during beta period | | Success criteria | Weekly approval rate ≥70% for 2 consecutive weeks | | Counter-metric | Views per post ≥80% of pre-agent baseline | | Длительность | 14 days | | Правило решения | Pass: ship to production. Fail: prompt iteration + 1 more week |
Experiment 3: A/B blind test (optional, post-MVP) | Parameter | Value | |---|---| | Type | A/B blind: 5 Софья-written vs 5 agent-written posts | | Выборка | 10 subscribers rate posts on «quality» and «authenticity» (1-10 scale) | | Success criteria | No statistically significant difference at p<0.05 | | Длительность | 1 week | | Note | Only if Софья wants formal validation |
Удержание / Использование Design
For a single-user tool, retention = Софья using the agent consistently:
| Phase | Metric | Цель | Timeline | Signal |
|---|---|---|---|---|
| Активация | First post published via agent | Day 1 of beta | 1 day | Agent generated post → Софья approved → published |
| Использование | Daily agent usage (logged in) | ≥5/7 days/week | Weeks 1-4 | Софья uses moderation bot daily |
| Привычка | Posts published without manual edits | ≥70% of posts | Weeks 4-8 | Trust established |
| Зависимость | Manual content creation drops to <1 post/week | <1 manual post/week | Month 2+ | Софья doesn't create content manually |
Требования к сбору данных
From ТЗ (123.md) Module 10 — already covered:
| Table | Key fields | Used for NSM? |
|---|---|---|
cases |
status, published_at | Publishing rate, quality |
moderation_log |
action (approved/skipped/edited), edited_text | Доля одобрения, edit rate |
daily_stats |
collected, approved, published, rejected_* | Daily content time proxy |
publish_queue |
status, scheduled_at, published_at | Publishing reliability |
Additional instrumentation needed: - Софья self-log time on content (manual, 1-week pre-build baseline) - Post-publish: Софья can optionally rate post quality (👍/👎) in bot
Intervention Триггерs
| Наблюдение | Последствие | Response | Check | Watch |
|---|---|---|---|---|
| Доля одобрения <50% for 3 days | Voice quality failing | Pause auto-publish. Run prompt iteration (3 attempts). | % approved after each iteration | If still <50% after 3 iterations → pause agent |
| Publishing error rate >10% | Technical issue | Alert developer. Check Telegram API + retry logic. | Error rate back to <5% | Если ошибки Telegram API → switch to secondary method |
| Софья stops using moderation bot for 48h | Trust or usability issue | Check in with Софья. What's wrong? | Софья resumes use or gives feedback | Если не использует 1 week → rethink entire approach |
| Views per post decline >20% vs baseline | Audience rejects AI content | A/B test human vs AI posts. Full transparency to subscribers. | Если decline продолжается → revert to manual + pause agent |
Реестр допущений
| # | Assumption | Metric it underpins | Уверенность | What invalidates |
|---|---|---|---|---|
| 1 | Софья тратит 3-5 ч/день сейчас | NSM baseline | M | Time-tracking показывает <2h |
| 2 | Доля одобрения ≥70% = acceptable quality | Quality L1 | M | Софья одобряет low-effort посты |
| 3 | Views/reactions стабильны при AI-контенте | Audience guardrail | L | Subscribers notice and disengage |
| 4 | Daily time <30 min = success | NSM target | M | Софья всё равно недовольна качеством |
Самооценка
Слабость: NSM is self-reported (time log), not instrumented. Софья может неточно логировать время. Решение: логировать можно в боте модерации как доп. поле.
Слабость: Отсутствие количественного теста voice quality. Доля одобрения — субъективная метрика. Софья может быть снисходительна или строга непредсказуемо. Решение: Experiment 3 (A/B blind test) если confidence в approval rate низкая.
Слабость: Audience health метрики — косвенные. Views/reactions — публичные метрики Telegram, не точные. Нет доступа к retention, CTR, времени чтения.
Выходной гейт
- Stage: 10 metric-design-experimentation
- Статус: PRODUCED
- Artifact: product/10-metric-design-experimentation.md
- Решение: NSM: «Время на контент/день» с guardrail «approval rate ≥70%». 3 эксперимента: voice validation (pre-build), beta (post-build), A/B blind (optional). Переход к Stage 11 (ADR — conditional) и Spec phase.
Технические решения: AI-агент контента для @pishu_pro
Date: 2026-06-18 Source: 123.md (ТЗ версия 2.0)
ADR-001: Claude Sonnet 4 for content generation
Статус: Accepted (per ТЗ)
Context: AI-агент должен писать посты в уникальном авторском стиле Софьи. Требуется модель с сильными способностями к стилизации текста, поддержкой русского языка и детальным следованием инструкциям. Альтернативы: GPT-4o, Gemini, open-source (Llama, Mistral).
Решение: Использовать claude-sonnet-4-20250514 для редактора (Module 6 — Editor) и классификатора (Module 3 — LLM classifier).
Consequences: - Positive: Лучшая стилизация под заданный голос среди доступных моделей; детальное следование system prompt; отличная поддержка русского языка - Negative: Vendor lock-in на Anthropic; стоимость API при большом объёме; latency выше, чем у меньших моделей - Neutral: Требуется fallback для времени простоя API (retry 3×)
Alternatives considered: - GPT-4o: сопоставимое качество, но хуже следует голосовым инструкциям по отзывам — отклонено - Gemini 2.5: хороший русский, но менее предсказуемый в стилизации — отклонено - Llama 3.1 70B: open-source, дешевле, но требует хостинга — отклонено (дополнительная инфраструктура)
Model portability: Если Claude Sonnet 4 is deprecated, pricing changes >2x, or quality degrades below 7/10 approval, fallback to GPT-4o with voice test suite benchmark. CI must block if score <7/10. Budget for migration: 2 developer weeks.
ADR-002: Telethon for Telegram channel parsing
Статус: Accepted (per ТЗ)
Context: Агент должен парсить посты из whitelist Telegram-каналов-источников. Требуется доступ к контенту каналов, куда бот добавлен не обязательно. Альтернативы: python-telegram-bot (Bot API), Telethon (MTProto), RSS (недоступен для большинства каналов).
Решение: Использовать Telethon (MTProto) для парсинга каналов (Module 1 — Parser).
Consequences: - Positive: Чтение каналов без добавления бота; доступ к истории; гибкий API - Negative: Требует авторизации через Telegram аккаунт (первый запуск — ввод кода из SMS); FloodWait ограничения; чувствительность к изменениям MTProto - Neutral: Telethon — зрелая библиотека (активная разработка)
Юридическая оценка рисков: Telethon использует MTProto с пользовательским аккаунтом — Telegram ToS 10.3 запрещает автоматизированный доступ через пользовательские аккаунты. Риск блокировки аккаунта убивает весь пайплайн. Mitigations: (a) резервный Bot API для публичных каналов, (b) аварийное отключение при блокировке аккаунта, (c) ограничение частоты ниже обнаруживаемых порогов. Рассмотреть консультацию юриста по ст.272 УК РФ (несанкционированный доступ) и авторско-правовые последствия републикации контента 5+ каналов.
Alternatives considered: - python-telegram-bot: только Bot API — бот должен быть администратором канала, что неприемлемо для парсинга чужих каналов — отклонено - RSS/Atom: большинство каналов не имеют RSS — отклонено
ADR-003: SQLite for storage (single-user)
Статус: Accepted (per ТЗ)
Context: Хранение кейсов, логов модерации, статистики. Решение для одного пользователя, не требующее масштабирования или конкурентного доступа.
Решение: Использовать SQLite как основное хранилище.
Consequences: - Positive: Zero ops (файл в директории); простота; достаточная производительность для single-user сценария - Negative: Не подходит для multi-tenant; нет concurrent writes от нескольких процессов; ограниченный размер - Neutral: Миграция на PostgreSQL в будущем — смена connection string + дамп
Quantified limitations: SQLite degrades past 100K rows (queries >500ms). Embeddings storage at 10K+ cases → dozens of MB WAL. Use .backup pragma not cp for backups. Migration to PostgreSQL via pgloader if needed. Backup plan: weekly .backup to separate volume.
Alternatives considered: - PostgreSQL: избыточен для одного пользователя; требует обслуживания — отклонено - MongoDB: документо-ориентированная модель не даёт преимуществ для реляционных данных — отклонено
ADR-004: Modular pipeline architecture (11 modules)
Статус: Accepted (per ТЗ)
Context: Система состоит из последовательных этапов обработки: парсинг → фильтрация → классификация → редактор → модерация → публикация.
Решение: Реализовать 11 модулей с последовательным конвейером (pipeline), каждый модуль — независимый класс/файл.
Consequences: - Positive: Модульность — каждый компонент можно тестировать и заменять независимо; чёткие границы ответственности - Negative: Сложность координации между модулями; sequential dependency (если один модуль падает, pipeline останавливается) - Neutral: Каждый модуль читает из общего SQLite, что снижает coupling
Alternatives: - Message queue (RabbitMQ/Redis): избыточно для single-user — отклонено - Monolithic single-script: невозможно тестировать — отклонено - Serverless functions (AWS Lambda): избыточная инфраструктура — отклонено
ADR-006: Voice Prompt as IP
Статус: Accepted
Context: Voice prompt (system prompt для Editor) — ключевой нематериальный актив (non-obvious-advantage). Prompt содержит стиль, тон, правила форматирования Софьи — интеллектуальная собственность, определяющая качество агента.
Решение: Хранить voice prompt в отдельном зашифрованном файле (voice_prompt.enc), .env permissions 600. Partition prompt: static base (style guide) + day-specific context (new instructions). Не включать в plain-text backups. Access logged. Encryption at rest, decrypt only at read-time.
Consequences: - Positive: Prompt защищён от случайной утечки; версионирование статической базы; аудит доступа - Negative: Дополнительная сложность при разработке (расшифровка при чтении) - Neutral: Partition prompt — практика prompt engineering для AI-агентов
Выходной гейт
- Stage: 11 develop-adr
- Статус: PRODUCED
- Artifact: product/11-develop-adr.md
- Решение: 4 ADRs covering core technical decisions: Claude Sonnet 4 (Editor), Telethon (Parser), SQLite (storage), modular pipeline architecture. Все решения задокументированы в ТЗ, ADR фиксирует rationale.
Спецификация: AI-агент контента для @pishu_pro
Spec type: Agent task spec (AI-агент + Python pipeline) Executor: Разработчик (по ТЗ 123.md) Date: 2026-06-18 Статус: References ТЗ v2.0 (123.md) + fills gaps
Цель
Софья сокращает время на создание контента с 3-5 ч/день до <30 мин/день, а AI-агент пишет посты в её голосе с quality approval rate ≥70%.
Outcome score: 3 — binary-testable: <30 min/day AND ≥70% approval rate for 2 consecutive weeks.
Границыies
В объём входит
- Parser (M1) — Telethon парсинг whitelist каналов (из
config/sources.txt), ежедневно в 08:00 МСК. Source diversification: M1 должен поддерживать минимум 10-15 каналов, с планом B (RSS, web scraping, manual entry) если все каналы-источники будут заблокированы. - Filter (M2) — keyword include/exclude filter, stop-words blocking
- Classifier (M3) — LLM
is_casedetection, business model classification - Dedup (M5) — MD5 hash + semantic embeddings (threshold >0.85)
- Editor (M6) — Claude Sonnet 4 переписывает кейс в голосе Софьи
- Rubricator (M7) — Классификация поста по рубрикам (ai_case, business_model, tool_review, anti_case)
- Scoring (M8) — Quality score 1-5, low_score (<3) → не отправлять на модерацию
- Moderation bot (M9) — Telegram бот с 4 кнопками: Approve / Edit / Skip / Queue
- Stats (M10) —
daily_statsтаблица с метриками конвейера - Publisher (M11) — Telegram API send_message, cron scheduler (10:00, 19:00 МСК)
- Config (M12) — .env, sources.txt, cron schedule
Explicitly За рамками
| Capability | Justification | Revisit |
|---|---|---|
| Multi-tenant / других авторов | Single-user tool. Нет сигнала рынка | 3+ external requests |
| Веб-дашборд / GUI | Весь UX в Telegram (бот + канал) | Если Софья запрашивает |
| API для внешних интеграций | Модули — внутренний pipeline | Не планируется |
| Авто-комментарии / replies | Agent пишет посты, не отвечает | Если нужно |
| Контент-план / editorial calendar | Не было в концепции | Post-MVP |
Критерии приёмкиa (дополнение к ТЗ)
ACs ниже не заменяют ТЗ, а закрывают gaps, которые в ТЗ не покрыты или не тестируемы.
| # | Module | Criterion | Type | Verification | Annotation |
|---|---|---|---|---|---|
| AC-1 | M1 (Parser) | Парсер работает без ошибок 7 дней подряд | Behavioral | grep ERROR in logs = 0 daily |
[Assumed] — требует теста на реальных каналах |
| AC-2 | M3 (Classifier) | Precision по is_case ≥90% на тестовой выборке 100 постов |
Behavioral | Ручная валидация 100 размеченных постов | [Assumed] — LLM accuracy не измерена |
| AC-3 | M6 (Editor) | Пост не содержит forbidden patterns из voice guide | Negative | Regexp проверка на AI-маркеры | [Validated] — voice guide определяет |
| AC-4 | M6 (Editor) | Пост начинается с bold-заголовка ≤70 символов без точки | Behavioral | len(title) <= 70 and not title.endswith('.') |
[Validated] — из концепции |
| AC-5 | M6 (Editor) | Пост содержит ровно 1 CTA-вопрос в конце | Behavioral | Regexp check for last paragraph ? |
[Validated] — из концепции |
| AC-6 | M6 (Editor) | Пост не содержит source attribution invention | Negative | Нет ссылок на несуществующие посты | [Validated] — legal requirement |
| AC-7 | M8 (Scoring) | Score <3 → low_score статус, не отправляется на модерацию |
Behavioral | Проверка статуса в cases table | [Assumed] — threshold может измениться |
| AC-8 | M9 (Moderation) | Бот отвечает на callback query <2s | Performance | Timeline: avg response time | [Assumed] — Telegram API latency |
| AC-9 | M11 (Publisher) | FloodWait: пауза на указанное время + алерт | Negative | Telegram API возвращает retry_after → handled | [Validated] — error handling в ТЗ |
| AC-10 | System | Все 11 modules load без ImportError на Python 3.11+ | Dependency | python3 -c "import pishu_pro_agent" |
[Validated] — ТЗ |
| AC-11 | System | .env валидируется при старте; missing keys → exit with error | Negative | BOT_TOKEN not set → ConfigError |
[Assumed] — convention |
| AC-12 | M11 (Publisher) | AI-disclaimer конфигурируется через .env DISCLAIMER_TEXT. Если пустой — публикация без дисклеймера. Если задан — добавляется первой строкой поста | Behavioral | Проверка: DISCLAIMER_TEXT="Test" → пост начинается с "Test" | [New] |
| AC-13 | System (Quality) | Monthly quality sample — Софья ревьюит 5 случайных постов за последние 30 дней. Если <70% approved → trigger prompt refresh | Behavioral | Ручная проверка Софьи | [New] |
Dependencies
| Dependency | Type | Owner | Status | Deadline |
|---|---|---|---|---|
| Telegram API key (BOT_TOKEN) | External | Софья (@BotFather) | TBD | Week 1 |
| Anthropic API key (ANTHROPIC_API_KEY) | External | Софья | TBD | Week 1 |
| MODERATION_CHAT_ID | External | Софья (шаг деплоя) | TBD | Week 1 |
| Тестовые каналы (sources.txt) | Content | Софья | TBD | Week 1 |
| VPS Ubuntu 22.04 | Infra | Разработчик | TBD | Week 1 |
| Telethon session авторизация | Setup | Разработчик (+ SMS от Софьи) | TBD | Week 1 |
| S-7: Claude API version pinned | External (Anthropic) | Разработчик | TBD | Week 1 |
Deadline: Week 1 (все external dependencies должны быть до начала разработки).
Условия отказа
| Condition | Impact | Mitigation |
|---|---|---|
| FloodWait от Telegram | Парсер стопится на N минут | await asyncio.sleep(retry_after) + log alert |
| Claude API timeout / 500 | Editor не обрабатывает кейс | Retry 3×, exponential backoff, skip + alert |
| Claude невалидный JSON | Classifier/Editor returns garbage | Retry с temperature 0, skip + alert |
| Bot API auth failure | Модерация/публикация не работают | Alert immediately; check BOT_TOKEN |
| Telethon disconnect | Парсер не может читать каналы | Reconnect with exponential backoff |
| SQLite lock | Concurrent write fails | Not applicable (single-process pipeline, но add timeout) |
| Service crash | Пропущенный цикл | systemd restart (restart=always) |
| Voice prompt permissions | Утечка prompt (утечка voice IP) | Voice prompt .env file must have 600 permissions. Excluded from plain-text backups. |
Реестр допущений
| # | Assumption | Уверенность | What invalidates | Annotation |
|---|---|---|---|---|
| S-1 | Telethon может читать все каналы из whitelist | M | Private/restricted channels в списке | [Assumed: verify] |
| S-2 | LLM classifier accuracy ≥90% | L | Manual test показывает <80% | [Unknown: TBD] |
| S-3 | Софья проверяет бот модерации >1×/день | M | Софья пропускает дни | [Assumed] |
| S-4 | VPS Ubuntu 22.04 + Python 3.11 стабильны | H | Testing shows dependency issues | [Validated] |
Zero-Question Score
| Dimension | Score (0-3) | Notes |
|---|---|---|
| Outcome defined | 3 | Binary-testable: time + approval rate |
| Scope bounded | 3 | Explicit in/out with justifications |
| ACs testable | 2.5 | AC-1 (parser 7 days) требует времени, некоторые — [Assumed] |
| Dependencies resolved | 1 | API keys, chat ID — TBD (надо получить до старта) |
| Failures covered | 3 | Error handling table covers all modules |
| Assumptions labeled | 2.5 | 2 of 4 — [Assumed] or [Unknown] |
Overall: 15/18 — strong, но 4 dependencies (API keys) надо получить до старта.
Самооценка
Слабость: Acceptance criteria assume ТЗ правилен. ACs покрывают gaps, но не проверяют core workflow (does the pipeline actually save time?) — это metric design, не spec.
Слабость: Не определены контентные стандарты для moderation. Что именно проверяет Софья: стиль, факты, тон? Без критериев ревью Софья может быть непредсказуемой gate.
Слабость: LLM accuracy assumptions unfounded. AC-2 предполагает 90% precision. Это может быть 60% или 99%. Нужен тест до запуска в production.
Выходной гейт
- Stage: 12 specification-writing
- Статус: PRODUCED
- Artifact: product/12-specification-writing.md
- Решение: Zero-question spec дополняет ТЗ 123.md. 11 ACs, 6 failure modes, 4 dependencies to resolve. Score 15/18. Переход к Stage 13 (PRD) оправдан.
PRD: AI-агент контента для @pishu_pro
Date: 2026-06-18 Статус: References ТЗ v2.0 (123.md) Audience: Софья, разработчик
1. Обзор
Название: AI-агент контента для @pishu_pro Тип: Internal automation tool (Telegram AI agent pipeline) Пользователь: Софья Солт (single-user)
2. Problem & Opportunity
Problem: Создание ежедневного контента для @pishu_pro занимает 3-5 ч/день. Ручной поиск, классификация, адаптация и публикация не масштабируются для одного автора.
Solution: AI-агент с 11-модульным pipeline: парсинг → фильтрация → классификация → редактор → модерация → публикация.
Success criteria: Софья тратит <30 мин/день на контент с approval rate ≥70%.
3. Users & Участникs
| User | Role | Needs |
|---|---|---|
| Софья | Primary user, автор | Минимум времени на контент, сохранение голоса |
| Подписчики | Consumers | Качественный, аутентичный контент |
| Разработчик | Builder | Чёткое ТЗ, понятная архитектура |
4. Functional Requirements
11 modules as defined in ТЗ (123.md) — summary:
| Module | Function | Input | Output |
|---|---|---|---|
| M1 Parser | Parse channels via Telethon | sources.txt | Raw posts → SQLite |
| M2 Keyword filter | Include/exclude keywords | Raw posts | Filtered posts |
| M3 LLM classifier | is_case detection | Post text | is_case: bool + rubric |
| M4 Filter is_case | Second pass (merged with M3) | — | — |
| M5 Dedup | MD5 + semantic embeddings | Post text | dedup: pass/skip |
| M6 Editor | Claude rewrite in voice | Case text | Post in voice of Софья |
| M7 Rubricator | Rubric classification | Post text | Rubric label |
| M8 Scoring | Quality score 1-5 | Post text | Score |
| M9 Moderation bot | Telegram approve/edit/skip | Post | Action |
| M10 Stats | daily_stats aggregation | DB | Stats |
| M11 Publisher | send_message + cron | Approved post | Published |
5. Non-Functional Requirements
| Requirement | Цель | Source |
|---|---|---|
| Reliability | 99% uptime (except API outages) | TЗ: error handling |
| Latency (processing) | Full pipeline <5 min per case | TЗ: cron schedule |
| Latency (bot response) | <2s on callback | TЗ |
| Scalability | N/A — single-user | — |
| Security | API keys in .env, not in code | Convention |
| Maintainability | Modular architecture, 11 independent modules | TЗ |
6. Dependencies
| Dependency | Status |
|---|---|
| BOT_TOKEN | TBD — получить у @BotFather |
| ANTHROPIC_API_KEY | TBD |
| MODERATION_CHAT_ID | TBD |
| VPS Ubuntu 22.04 | TBD |
| sources.txt (5-10 channels) | TBD — Софья составляет |
7. Release Criteria
| Criterion | Цель |
|---|---|
| Pipeline processes a case end-to-end | PASS |
| Доля одобрения ≥70% in beta (2 weeks) | PASS |
| Софья uses agent ≥5/7 days in beta week 2 | PASS |
| Daily publishing time <30 min | TBD (baseline needed) |
Выходной гейт (Stage 13)
- Stage: 13 deliver-prd
- Статус: PRODUCED
- Artifact: product/13-deliver-prd.md
- Решение: PRD структурирует ТЗ в формате product requirements. Переход к Stage 14 (Сценарии использования).
Сценарии использования: AI-агент контента для @pishu_pro
User: Софья (single user) Date: 2026-06-18
Epic 1: Daily content pipeline
Story 1.1 — Автоматический сбор кейсов
As Софья
I want агент каждое утро парсил мои каналы-источники
So that я не трачу 30-60 мин на поиск кейсов вручную
Acceptance: Агент парсит whitelist каналов ежедневно в 08:00 МСК. Новые кейсы попадают в SQLite.
Story 1.2 — Фильтрация мусора
As Софья
I want агент отсеивал рекламу, промокоды и не-кейсы
So that я вижу только релевантный контент
Acceptance: Stop-words (скидка, промокод, вебинар) блокируют пост. Include-words (сэкономила, заменила, внедрила) — пропускают.
Story 1.3 — Классификация кейсов
As Софья
I want агент определял, является ли пост бизнес-кейсом, и ставил рубрику
So that я не решаю «это кейс или нет?» вручную
Acceptance: LLM классификатор: is_case: bool + rubric (ai_case, business_model, tool_review, anti_case). Precision ≥90%.
Epic 2: Voice adaptation
Story 2.1 — Написание поста в голосе
As Софья
I want агент переписывал кейс в моём стиле
So that пост звучит как мой, а не как AI-генерация
Acceptance: Пост в голосе Софьи: разговорный, с рефлексией, эмоциональный. Заголовок bold ≤70 символов. CTA-вопрос в конце.
Story 2.2 — Дедупликация
As Софья
I want агент не писал про одно и то же дважды
So that контент остаётся свежим
Acceptance: MD5 + semantic embeddings (threshold >0.85) → дубликаты пропускаются.
Epic 3: Moderation & publishing
Story 3.1 — Модерация в Telegram
As Софья
I want получать пост в Telegram боте с кнопками Approve / Edit / Skip / Queue
So that я могу быстро решить, публиковать ли
Acceptance: Пост приходит в MODERATION_CHAT_ID. Кнопки работают. Edit показывает поле для правок.
Story 3.2 — Автопубликация по расписанию
As Софья
I want одобренный пост публиковался в канал в ближайший слот
So that контент выходит вовремя
Acceptance: Слоты 10:00 и 19:00 МСК. Если поста нет — слот пропускается (FIFO очередь).
Режим отпуска: Софья can activate vacation mode via bot (auto-pause publishing + subscriber notification post). Резервный модератор: optional delegate with limited approve/skip permissions. Эскалация оповещением: if no review within 24h, push notification.
Story 3.2a — Transparency disclosure
As Софья
I want the first post to disclose that content is AI-assisted (configured via DISCLAIMER_TEXT)
So that we comply with AI-content regulations (ФЗ №258) and maintain subscriber trust.
Acceptance: DISCLAIMER_TEXT from .env prepended to first published post unless human-overridden.
Story 3.2b — Post-publication recovery
As Софья
I want if a bad post is published, I can trigger an emergency delete within a 15-minute grace period (/stop command in bot)
So that the channel doesn't suffer reputation damage.
Acceptance: /stop within 15 min of publish deletes post from channel. Logged as post_emergency_delete. Alert sent to Софья.
Story 3.3 — Скоринг качества
As Софья
I want агент оценивал качество поста до отправки мне
So that я не трачу время на откровенно слабые посты
Acceptance: Score 1-5. Score <3 → low_score, не отправляется на модерацию.
Voice-fidelity scoring: In addition to content quality, score each post for voice authenticity (matches Софья's established style). Monthly voice drift report.
Epic 4: Operations
Story 4.1 — Ежедневная статистика
As Софья (или разработчик)
I want видеть, сколько кейсов собрано, отфильтровано, опубликовано
So that я понимаю, работает ли агент
Acceptance: daily_stats заполняется каждый день. Мой любимый: collected, approved, published.
Story 4.2 — Обработка ошибок
As Разработчик
I want чтобы pipeline не падал молча
So that я знаю, когда что-то сломалось
Acceptance: Все ошибки: retry 3×, затем log + skip + alert. FloodWait handled. systemd restart.
Карта сценариев
flowchart LR
subgraph Daily
P[Парсинг 08:00] --> F[Фильтр] --> C[Классиф.] --> D[Dedup] --> E[Editor]
end
subgraph Moderation
E --> SC[Scoring] --> MB[Бот 08:45]
MB -->|Approve| Q[Очередь]
MB -->|Edit| E
MB -->|Skip| D
end
subgraph Publishing
Q -->|10:00| PB1[Publish]
Q -->|19:00| PB2[Publish]
end
Выходной гейт (Stage 14)
- Stage: 14 deliver-user-stories
- Статус: PRODUCED
- Artifact: product/14-deliver-user-stories.md
- Решение: 10 user stories across 4 epics. Переход к Stage 15 (Критерии приёмкиa).
Критерии приёмкиa: AI-агент контента для @pishu_pro
Date: 2026-06-18 Criteria format: Given… When… Then… (binary-testable)
Epic 1: Daily content pipeline
AC-1.1: Парсер запускается по расписанию
Given сейчас 08:00 МСК
When cron триггерит парсер
Then Telethon проверяет каждый канал из sources.txt
And новые посты сохраняются в cases таблицу
And ошибки каналов (нет доступа, FloodWait) логируются
AC-1.2: Фильтр стоп-слов блокирует рекламу
Given пост содержит "скидка 50%"
When keyword filter проверяет пост
Then пост получает статус rejected_filter
AC-1.3: Классификатор определяет is_case
Given пост описывает: "Я заменил бухгалтера на AI и сэкономил 2 часа в день"
When LLM classifier анализирует текст
Then is_case = true
And confidence ≥0.7
AC-1.4: Дедупликация по MD5
Given пост с текстом X уже есть в cases с text_hash
When тот же текст X приходит снова
Then парсер пропускает пост
And статус не меняется
Epic 2: Voice adaptation
AC-2.1: Редактор пишет в голосе Софьи
Given кейс с описанием "Компания N внедрила AI-чатбот и сократила поддержку на 40%"
When Editor (Claude) обрабатывает кейс
Then пост написан от первого лица, разговорно
And заголовок bold ≤70 символов, без точки
And пост содержит CTA-вопрос в конце
And пост НЕ содержит: парцелляцию, шаблонные фразы, AI-маркеры
AC-2.2: Дедупликация семантическая
Given в базе есть пост про "заменил бухгалтера на нейросеть"
When новый пост про "автоматизация бухгалтерии через AI" с cosine similarity >0.85
Then пост считается дублём, пропускается
Epic 3: Moderation & publishing
AC-3.1: Скоринг ниже порога
Given пост набран score 2/5
When scoring module завершает оценку
Then пост получает статус low_score
And не отправляется в бот модерации
AC-3.2: Модерация с кнопками
Given пост в стадии moderation
When Софья нажимает Approve
Then пост перемещается в publish_queue со статусом waiting
And Софья видит подтверждение
AC-3.3: Публикация в слот
Given есть пост в очереди и сейчас 10:00 МСК
When publisher триггерится
Then bot.send_message отправляет пост в канал
And cases.status = 'published'
And telegram_message_id записан
AC-3.4: Пропуск слота без поста
Given в очереди нет approved постов
When наступает слот публикации
Then слот пропускается
And в лог пишется "slot skipped: no approved posts"
Epic 4: Operations
AC-4.1: Конфигурация валидируется
Given BOT_TOKEN не установлен в .env
When агент стартует
Then exit с ошибкой "BOT_TOKEN is required"
AC-4.2: Ежедневная статистика пишется
Given pipeline завершил цикл
When stats module запускается
Then daily_stats содержит: date, collected, rejected_filter, duplicates, sent_to_moderation, approved, published
AC-4.3: Retry при ошибке API
Given Claude API возвращает 500
When Editor пытается обработать кейс
Then retry 3× с exponential backoff
And после 3х неудач — skip + alert
Summary
| Epic | ACs count | Coverage |
|---|---|---|
| Epic 1: Pipeline | 4 | Core flow |
| Epic 2: Voice | 2 | Quality-critical |
| Epic 3: Moderation | 4 | Operations |
| Epic 4: Operations | 3 | Reliability |
| Total | 13 | All modules covered |
Выходной гейт (Stage 15)
- Stage: 15 deliver-acceptance-criteria
- Статус: PRODUCED
- Artifact: product/15-deliver-acceptance-criteria.md
- Решение: 13 binary-testable ACs across all epics. Переход к Stage 16 (Edge Cases).
Edge Cases: AI-агент контента для @pishu_pro
Date: 2026-06-18 Severity: Critical / High / Medium / Low
Edge Case Register
| # | Module | Edge Case | Severity | Behaviour | Mitigation |
|---|---|---|---|---|---|
| E-01 | M1 | Канал недоступен (удалён, приватный, заблокирован). Account blocked by Telegram (ToS 10.3 violation) — Critical. Entire pipeline stops. Mitigation: Bot API fallback, аварийное отключение, counsel consultation. | High | FloodWait или AccessError | Пометить канал, skip, alert, продолжить с другими каналами. При блокировке всего аккаунта — остановка пайплайна, уведомление, консультация с юристом |
| E-02 | M1 | FloodWait: Telegram требует подождать 30+ минут | Medium | asyncio.sleep(required_seconds) | Параллельный парсинг других каналов не блокируется |
| E-03 | M1 | В whitelist нет каналов | Critical | Пустой sources.txt → parser не имеет входных данных | Alert: "No sources configured" + skip |
| E-04 | M2 | Все посты отфильтрованы (0 кейсов для Editor) | Medium | Pipeline заканчивается за 5 минут без результата | Не страшно — пропущенный день лучше плохого контента |
| E-05 | M3 | LLM возвращает невалидный JSON | Medium | Response не парсится как {"is_case": true, ...} |
Retry с temperature 0, затем skip + alert |
| E-06 | M3 | LLM не уверен (confidence <0.5) | Low | is_case uncertain | Treat as non-case, пропустить |
| E-07 | M5 | База эмбеддингов пуста (первый запуск) | Low | MD5 dedup работает, semantic нет | Начать с MD5, наполнять семантические |
| E-08 | M6 | Claude API timeout (30s+) | Medium | Post не написан | Retry 3×, на 3й раз → alert + pipeline не блокируется |
| E-09 | M6 | Claude пишет пост с forbidden words | Medium | Нарушение voice guidelines | Не автоматизировать — Софья отклоняет в модерации |
| E-10 | M6 | Кейс на не-RU языке | Low | Агент работает с русским контентом | Пропустить non-RU кейсы (или писать на языке кейса) |
| E-11 | M8 | Score 3 (пороговый) | Medium | На границе качества | Отправить на модерацию (score ≥3). Софья решает |
| E-12 | M8 | Low-score пост — единственный за день | Medium | Нет контента для публикации | Лучше пропустить слот, чем публиковать низкое качество |
| E-13 | M9 | Софья не отвечает на модерацию 48+ часов | High | Пост ждёт, слоты пропускаются | Automatic: skip post after MODERATION_TIMEOUT_HOURS (config: 48h) |
| E-14 | M9 | Софья нажимает Edit, но не отправляет исправление | Low | Пост зависает в очереди на редактирование | Timeout: после 24h → skip post |
| E-15 | M11 | Telegram API возвращает FloodWait при публикации. FloodWait >3600s → skip slot + alert. >86400s → stop pipeline + alert. Cumulative FloodWait >5/day → escalation. | Medium | Post не опубликован в слот | Retry через retry_after секунд. Если не успел → следующий слот |
| E-16 | M11 | Два поста в одном слоте | Low | FIFO нарушен | Слот публикует 1 пост. Второй ждёт следующего слота |
| E-17 | System | Service restart во время pipeline. Restart=on-failure (not always), StartLimitBurst=3, After=network-online.target | Medium | Незавершённые операции | systemd restart → pipeline начинается заново. Idempotent (dedup) |
| E-18 | System | SQLite database corruption | Critical | Все данные потеряны | Ежедневный SQLite backup (cron + cp) |
| E-19 | M9 | Софья Approve пост, который уже пропущен по timeout | Low | Пост уже не в очереди | Bot показывает "Post no longer available" |
| E-20 | M3 | Один и тот же пост (из разных источников) | Low | De-duplication catch | MD5 first, semantic second — оба слоя защищают |
| E-21 | M9 | Софья unavailable >72h — No moderation → no publishing for 3+ days | High | Посты не проходят модерацию | Резервный модератор role, vacation mode activation, data access documented for handoff. If absence >2 weeks → archive project cleanly |
| E-22 | System | Empty pipeline run — Parser returns 0 new cases → pipeline completes silently in 5 minutes | Low | Софья не замечает дня без публикаций | Health-check alert if 0 cases published for 48h |
| E-23 | System | SQLite size growth — At 100K+ rows, queries slow. At 200K+, WAL file grows large | Medium | Ухудшение производительности со временем | Archive cases older than 6 months to separate table, .backup pragma weekly |
| E-24 | M1 | Content source all blocked — All whitelist channels become inaccessible. Pipeline starved | High | Нет входящего контента | Diversify to 10-15 sources, plan B (RSS, web scraping, manual entry) |
| E-25 | M3 | Semantic dedup false positive — Two genuinely different cases score >0.85 similarity → second is silently skipped. Cases lost without trace | Medium | Потеря уникального контента без уведомления | Log all skipped cases, weekly manual review |
Edge Cases Risk Matrix
| Severity | Count | Action |
|---|---|---|
| Critical | 2 | E-03 (no sources), E-18 (DB corruption) |
| High | 4 | E-01 (channel down + account blocked), E-13 (moderation timeout), E-21 (Софья unavailable), E-24 (all sources blocked) |
| Medium | 11 | API issues, timeouts, thresholds, SQLite growth, dedup false positives |
| Low | 8 | Cleanup, empty states, edge UX, empty pipeline |
Top 5 risks to address first: 1. E-03: Validate sources.txt is non-empty at startup 2. E-13: Auto-timeout posts that Софья hasn't reviewed within 48h 3. E-18: Add daily SQLite backup to cron 4. E-21: Резервный модератор / vacation mode for Софья absence 5. E-24: Diversify content sources, plan B
Выходной гейт (Stage 16)
- Stage: 16 deliver-edge-cases
- Статус: PRODUCED
- Artifact: product/16-deliver-edge-cases.md
- Решение: 25 edge cases documented. 2 critical, 4 high, 11 medium, 8 low. Top risks: sources validation, moderation timeout, DB backup, Софья absence, source diversity. Spec phase complete.
План внедрения: AI-агент контента для @pishu_pro
Примечание: This is an internal tool, not a commercial product. Date: 2026-06-18
Контекст
| Dimension | Status |
|---|---|
| Customer | Софья (1 user) |
| What we replace | Manual process + ChatGPT |
| Delivery | Direct — developer builds, Софья uses |
План запуска
Phase 1: Beta (Week 9-10) - Софья moderates all posts for 2 weeks - Success criteria: approval rate ≥70% - Metrics: time saved, approval rate
Использование plan for Софья: - (a) Week 1-2: Софья logs time manually, establishes baseline - (b) Voice validation test (10 posts) - (c) Beta: Софья moderates all posts for 2 weeks - (d) Gradual trust: auto-publish enabled per rubric, starting with lowest-risk categories - (e) Behavior milestones: Софья checks bot 5/7 days → 7/7 → 3 posts/week auto → 5 posts/week auto
Phase 2: Production (Week 11+) - Auto-publish enabled after beta pass - Софья monitors daily stats - Manual content creation as backup
Phase 3: Optional Platform (Q3-Q4 2026) - Если 3+ других авторов запросят инструмент → рассмотреть упаковку для multi-user - If not → continue as internal tool
If Bet 3 (Platform) activates: План меняется — требуется доопределение архитектуры, маршрут коммерциализации.
Channel
- Build: Developer (per ТЗ)
- Communication: Direct (Софья ↔ developer)
- Distribution: Deployed on VPS
Метрики успеха
| Metric | Цель | Owner |
|---|---|---|
| Доля одобрения | ≥70% | Софья |
| Time on content | <30 min/day | Софья |
| Publishing rate | ≥80% of slots | Developer |
| System uptime | 99% | Developer |
Выходной гейт (Stage 17)
- Stage: 17 go-to-market-strategy
- Статус: PRODUCED | Решение: Internal launch — beta → production → optional platform. Использование plan detailed with behavior milestones. Bet 3 (Platform) activation trigger defined. Внутренний запуск, без коммерческого GTM.
Ценообразование (не применимо): AI-агент контента для @pishu_pro
Stage 18 — SKIPPED Причина: Инструмент внутренний, для одного пользователя (Софья), не монетизируется. Никакие решения по pricing не применимы. Триггер пересмотра: Если 3+ внешних автора запросят инструмент — оценить ценообразование (2-3k руб/мес, справочно из Stage 05).
Выходной гейт (Stage 18)
- Stage: 18 pricing-packaging
- Статус: SKIPPED
- Причина: Внутренний инструмент, не монетизируется
- Решение: Not applicable.
Narrative: AI-агент контента для @pishu_pro
Date: 2026-06-18
Основной нарратив
«Софья пишет в канал так же хорошо, но тратит на это 30 минут вместо 3 часов. Её подписчики не замечают разницы — и это доказывает, что настоящая автоматизация начинается не с замены человека, а с освобождения его времени для того, что реально важно.»
Подписчики знают: AI помогает находить и адаптировать контент, Софья проверяет каждый пост перед публикацией.
Ключевые сообщения
For Софья (internal)
- Ты сокращаешь время на контент с 3-5 часов до <30 минут в день
- Канал остаётся в твоём голосе — подписчики не отличают
- Ты контролируешь качество через модерацию
- Если что-то идёт не так — ты всегда можешь вернуться к ручному режиму
For Подписчиков (disclosure is mandatory upon first AI-generated post)
- Канал открыто использует AI для автоматизации: поиск кейсов и адаптация выполняются AI, модерация и финальное решение — Софья.
- Каждый пост проходит модерацию автора
- Качество и аутентичность — #1 приоритет
For Developers (team context)
- 11 модулей, Чёткая архитектура
- Claude Sonnet 4 + Telethon + SQLite
- VPS deployment, systemd
Story
«Я тратила полдня на один пост: найти крутой кейс, переписать его так, будто я сама рассказываю другу, проверить, не звучит ли как AI. А потом ещё раз проверить. Теперь агент делает 80% этой работы за меня. Я только читаю финальный вариант и решаю: публикуем или нет. И знаете что? Чаще всего — публикуем.» (Софья, представляемый сценарий)
Key Differentiators
| Factor | Our Agent | ChatGPT | Human |
|---|---|---|---|
| Time | <30 min/day | 30-60 min per post | 3-5h/day |
| Voice | Софья's voice | Generic unless prompted | Authentic |
| Consistency | High (same prompt) | Varies | Varies (mood, time) |
| Cost | VPS + API | $20/mo | ₽50-150k/month |
| Control | Full (mod) | None | Full |
Выходной гейт (Stage 19)
- Stage: 19 narrative-building
- Статус: PRODUCED | Решение: Core narrative = time + voice preservation. Move to Stage 20.
Резюме для Софьи: AI-агент контента для @pishu_pro
Кому: Софья Солт От: Разработчик Дата: 2026-06-18 Формат: Одна страница, 2 минуты чтения
Что мы делаем. Строим AI-агента, который будет искать бизнес-кейсы, переписывать их твоим голосом и публиковать в @pishu_pro. Ты тратишь не 3-5 часов в день, а 10-15 минут на модерацию. Качество такое же — или максимально близкое.
Почему это сейчас. Ты уже написала концепцию и ТЗ. Всё готово к разработке. AI-инструменты (Claude Sonnet 4) достаточно хороши, чтобы писать в твоём голосе — нужно проверить на твоих реальных кейсах.
Ключевой риск. Голос. Если посты звучат не как ты — агент не работает. Поэтому первый шаг: ты оцениваешь 10 тестовых постов от Claude. Если ≥7 из них годятся — строим дальше.
Архитектура. 11 модулей — от парсинга каналов до публикации. Всё по твоему ТЗ.
Когда. 2 недели на прототип парсера + тест голоса. 6 недель на полную сборку. 2 недели бета с твоей модерацией. К сентябрю — в production.
Что нужно от тебя сейчас: 1. API ключи (Telegram bot + Anthropic) — 5 минут через @BotFather 2. Список 5-10 каналов-источников 3. Оценка 10 тестовых постов (на второй неделе проекта)
Выходной гейт (Stage 20)
- Stage: 20 executive-writing
- Статус: PRODUCED
- Решение: Written for Софья. Move to Stage 21.
Согласование (пропущено): AI-агент контента для @pishu_pro
Stage 21 — SKIPPED Reason: Only 1 участник (Софья), who is also the primary user. No contested decisions — all architectural choices are documented in TЗ and ADRs. No alignment process required. Revisit trigger: If the tool is expanded for multiple authors, run full участник mapping.
Чеклист запуска: AI-агент контента для @pishu_pro
Date: 2026-06-18 Type: Internal tool launch (not commercial)
Pre-Launch (before Beta)
| # | Item | Owner | Done? |
|---|---|---|---|
| 1 | BOT_TOKEN получен от @BotFather | Софья | ☐ |
| 2 | ANTHROPIC_API_KEY получен | Софья | ☐ |
| 3 | MODERATION_CHAT_ID получен | Софья | ☐ |
| 4 | VPS Ubuntu 22.04 provisioned | Developer | ☐ |
| 5 | sources.txt составлен (5+ каналов) | Софья | ☐ |
| 6 | Telethon session авторизована (SMS code) | Developer | ☐ |
| 7 | .env заполнен | Developer | ☐ |
| 8 | Зависимости установлены (requirements.txt) | Developer | ☐ |
| 9 | Парсер prototype протестирован на 3 каналах 24ч | Developer | ☐ |
| 10 | Voice test: 10 posts → Софья оценивает | Developer + Софья | ☐ |
| 27 | Legal compliance review | Telegram ToS 10.3 (MTProto), ФЗ №258 AI-marking, 152-ФЗ, copyright (ГК РФ). Pre-launch requirement | ☐ |
| 29 | Voice prompt security | 600 permissions, excluded from plain-text backups, access logging configured | ☐ |
Pre-Launch (Beta Gate)
| # | Item | Criteria | Pass? |
|---|---|---|---|
| 11 | Voice test results | ≥7/10 approved | ☐ |
| 12 | systemd service configured | Restart=on-failure, StartLimitBurst=3, After=network-online.target, WatchdogSec=60 | ☐ |
| 13 | Log rotation enabled | logrotate | ☐ |
| 14 | SQLite backup | .backup pragma (not cp), separate volume, weekly |
☐ |
| 15 | Alerting configured | Log alerts for errors | ☐ |
| 16 | Софья обучена использованию бота | Знает кнопки | ☐ |
Beta Launch (Week 1-2)
| # | Item | Criteria | Pass? |
|---|---|---|---|
| 17 | Софья логирует время на контент 7 дней | Базовый уровень | ☐ |
| 18 | Beta post #1 published via agent | First post | ☐ |
| 19 | Daily approval rate tracked | ≥70% target | ☐ |
| 20 | Софья uses bot daily | ≥5/7 days | ☐ |
| 21 | Publishing errors monitored | Error rate <5% | ☐ |
| 31 | Базовый уровень engagement | 2 weeks of pre-agent views/reactions data collected for comparison | ☐ |
Production Launch (after Beta)
| # | Item | Criteria | Pass? |
|---|---|---|---|
| 22 | Beta pass | ≥70% approval, 2 consecutive weeks | ☐ |
| 23 | Auto-publish enabled | Cron schedule active | ☐ |
| 24 | Софья shifts to moderation-only | Time <30 min/day | ☐ |
| 25 | Backup & monitoring verified | 7 days of stable logs | ☐ |
| 26 | Rollback plan documented | How to revert to manual | ☐ |
| 30 | Data retention policy | CASE_RETENTION_DAYS=180, DELETE_CASE_BY_ID operational | ☐ |
План отката
- Stop cron →
systemctl stop pishu_pro_agent - Софья возвращается к ручному созданию контента
- No data loss — SQLite backup доступен
Post-Launch Monitoring
| Metric | Check | Frequency |
|---|---|---|
| Доля одобрения | Weekly | 1 week |
| Daily content time | Софья self-logs | Daily (week 1-2) |
| Publishing errors | Logs | Daily |
| Audience engagement (views) | Telegram stats | Weekly |
Выходной гейт (Stage 22)
- Stage: 22 deliver-launch-checklist
- Статус: PRODUCED | Решение: 31-item checklist covering pre-launch → beta → production. Deployment phase complete.
Сбор данных: AI-агент контента для @pishu_pro
Date: 2026-06-18 Source: ТЗ v2.0 (123.md) Module 10 + metric framework (Stage 10)
Цели сбора
| Question | Decision it informs | Source |
|---|---|---|
| Сколько времени Софья тратит на контент? | NSM tracking (target: <30 min) | Stage 10 |
| Какое качество AI-постов? | Доля одобрения (target: ≥70%) | Stage 10 |
| Pipeline работает штатно? | Ошибки, пропуски, FloodWait | Operations |
| Какие источники наиболее продуктивны? | sources.txt optimization | Content strategy |
События
| Event | Триггер | Properties | Type |
|---|---|---|---|
case_collected |
Парсер сохранил новый пост в cases |
source_channel, text_hash | System |
case_rejected_keyword |
Keyword filter отклонил пост | source_channel, stop_word_matched | System |
case_rejected_classifier |
LLM classifier: is_case=false | case_id, confidence | System |
case_duplicate_md5 |
MD5 hash совпал | text_hash | System |
case_duplicate_semantic |
Semantic similarity >0.85 | similar_to_case_id, score | System |
case_low_score |
Quality score <3 | case_id, score | System |
case_rewritten |
Editor завершил переписывание | case_id, token_count | System |
post_sent_to_moderation |
Пост отправлен в бот Софье | case_id, score, rubric | System |
post_moderated |
Софья нажала кнопку | case_id, action (approve/edit/skip/queue) | User |
post_edited |
Софья отредактировала пост | case_id, edit_length | User |
post_published |
Пост опубликован в канал | case_id, slot (10:00/19:00) | System |
publish_failed |
Ошибка при публикации | case_id, error_type, retry_count | System |
slot_skipped |
Слот публикации без поста | slot_time | System |
error_api_retry |
API retry (Claude/Telegram) | module, error, attempt | System |
api_cost_daily |
Total API cost per day (token usage × model pricing) | model, tokens_in, tokens_out, estimated_cost | System |
pipeline_duration_seconds |
Total pipeline runtime | duration_seconds, pipeline_stage | System |
post_engagement |
Weekly views/reactions per post vs baseline | post_id, views, reactions, baseline_delta | System |
voice_style_score |
Monthly score from Софья or audit sample | score, sample_posts, drift_indicators | Manual |
case_duplicate_semantic_fp |
Weekly count of potential false positive dedup | case_id, similar_to_case_id, score | System |
Database Schema (from ТЗ)
Already defined in ТЗ — tables: cases, moderation_log, daily_stats, publish_queue.
PII и конфиденциальность
| Field | PII? | Handling |
|---|---|---|
| source_channel | Public channel name | None needed |
| Telegram message IDs | Public | None needed |
| User phone (Telethon) | YES | Only for auth, not logged |
| API keys | N/A | .env, NOT in code or logs |
| Case content | HIGH | CASE_RETENTION_DAYS=180. DELETE_CASE_BY_ID available via bot |
Инструментарий
NSM: Time Софья spends on content/day — not fully instrumented in ТЗ.
Manual logging: Add /log_time N command to moderation bot (Софья пишет сколько минут потратила на контент сегодня). Falls back to daily_stats + estimation (time = posts × avg time per post).
Базовый уровень engagement tracking: 2 weeks pre-agent launch to establish pre-AI engagement rates (views, reactions per post). Post-launch comparisons use this baseline.
Alerts:
- pipeline_duration_seconds > 5400 (90 min) → alert. Cumulative trend week-over-week → investigate.
- api_cost_daily > 2x weekly average → alert.
Чеклист тестирования
| Test | Method | Pass |
|---|---|---|
| Event fires on parser run | Check cases table | ☐ |
| Moderation button triggers post_moderated | Bot logs | ☐ |
| daily_stats updates after pipeline cycle | Daily check | ☐ |
| Error event on API retry | Триггер timeout, check log | ☐ |
Выходной гейт (Stage 23)
- Stage: 23 measure-instrumentation-spec
- Статус: PRODUCED
- Решение: 17 system events + 2 user events + 1 manual event documented. 2 alerts configured (pipeline duration, API cost). NSM time tracking requires manual log command in bot. Базовый уровень engagement tracking (2 weeks pre-launch) required. Measure phase complete.
Ретроспектива (пропущено): AI-агент контента для @pishu_pro
Stage 24 — SKIPPED Reason: No launch or usage evidence exists yet. Tool is in pre-build stage. Ретроспектива (пропущено) requires post-launch data (at minimum 2 weeks of production usage). Revisit trigger: After 2+ weeks of production use, run retrospective with approval rate, time saved, and Софья's qualitative feedback.
Корректировка (пропущено): AI-агент контента для @pishu_pro
Stage 25 — SKIPPED Reason: No launch metrics exist to contradict strategy. Pivot decision requires active metrics vs. strategic hypothesis comparison (Stage 10 measurement framework + launch data). Currently in pre-build phase. Revisit trigger: Run after 1+ month of production data. Decision criteria: - Доля одобрения <50% → pivot: rethink voice adaptation approach - Софья stops using agent → pivot: return to manual + reassess - 5+ external requests → consider multi-user expansion (Bet 3 activation)