MATHCAST
Mathcast / Документы / Mathchast_24 — CMS и moderation workflow
МАТЧАСТЬ / CMS & MODERATION WORKFLOW / DOCUMENT 24 / 02.09.2026

CMS и moderation workflow «Матчасти»

Как устроить редакционную и коммерческую операционку: от идеи, анкеты и оплаченного заказа до публикации, маркировки, IndexNow, отчёта, исправлений и повторной покупки. Документ определяет состояния материала, роли, очереди, SLA, права клиента, работу редактора, fact-check, legal review, возвраты, версионирование, аудит и требования к интерфейсу CMS.

1 объектpublication проходит единый state machine независимо от того, кто заплатил
4 очередиstandard, enhanced, legal/high-risk и corrections/incidents
Human gateAI помогает собирать и проверять, но не публикует коммерческий материал самостоятельно
Audit firstкаждое критическое решение, правка и смена статуса оставляет историю

1. Главное решение

CMS «Матчасти» должна быть не текстовым редактором с кнопкой «Опубликовать», а workflow engine. Внутри одного объекта publication связываются: контент, entities, claims, sources, права, legal classification, рекламная маркировка, коммерческий заказ, ссылки, structured data, index state, публикационный lifecycle и analytics.
INPUT idea / client order / questionnaire / editorial assignment ↓ DRAFT ↓ AUTOMATED PRECHECK ↓ EDITORIAL TRIAGE ↓ FACT / SOURCE REVIEW ↓ LEGAL & AD REVIEW if needed ↓ FINAL EDITOR ↓ READY ↓ PUBLISH ↓ DISCOVERY ↓ MONITORING ↓ CORRECTIONS / REPORTING / NEXT ACTION

2. Почему CMS является ядром бизнеса

Самый опасный сценарий для «Матчасти» — сделать красивый сайт, оплату и AI-редактор, а модерацию оставить в Telegram/Google Docs. Тогда невозможно доказать, кто что одобрил, какой текст был оплачен, какие claims проверены, почему материал получил статус рекламы, откуда взялась ссылка и какая версия ушла в публикацию.

Если workflow существует только «в голове редактора», масштабирование до 20–100 публикаций в месяц быстро разрушит качество и compliance.

3. Что показывает РБК Компании

В текущем workflow РБК Компании пользователь выбирает формат, сохраняет черновик или отправляет материал на модерацию. Если материал не проходит проверку, пользователь получает комментарий и дорабатывает его. Сервис публично указывает обычный срок рассмотрения до 3 часов, а в отдельных случаях — до 2 суток. Редакция может делать небольшие корректировки заголовка, анонса и текста, а значительные изменения требуют повторной модерации.

Для нас важен сам паттерн: Draft → Submit → Moderator decision → Changes/Approve → Publish, но «Матчасть» добавляет к нему entity verification, sources, legal classification, ad workflow, link policy и measurement.

4. Что показывает Хабр

Хабр описывает ручную проверку публикаций по нескольким признакам: оформление, факты при сомнениях, реклама/реферальные ссылки, тематическая релевантность. Модераторы используют внутренний флаг проверки, часть материалов требуют более тщательного чтения, а решения можно обжаловать.

Для «Матчасти» полезен принцип risk-based moderation: не каждый материал требует одинаковых 40 минут, но ни один коммерческий материал не должен обходить обязательные policy checks.

5. Один publication object, несколько процессов

PUBLICATION ├─ content state ├─ editorial state ├─ legal state ├─ verification state ├─ commercial order state ├─ link state ├─ index state ├─ publication lifecycle └─ measurement state НЕ НУЖНО: одно поле status="approved" которое означает сразу всё.

6. Почему одно поле status не работает

СитуацияContentLegalCommercePublish
Текст хороший, ждём eridAPPROVEDAD_PENDING_ERIDPAIDBLOCKED
Редакционная статья готоваAPPROVEDEDITORIALNONEREADY
Кейс оплачен, но цифры не подтвержденыFACT_CHECKREVIEWPAIDBLOCKED
Статья опубликована, но потом исправляетсяCORRECTIONUNCHANGEDCOMPLETEACTIVE

7. Editorial state machine

IDEA → DRAFT → SUBMITTED → PRECHECK → TRIAGE → NEEDS_DATA → EDITORIAL_REVIEW → NEEDS_CHANGES → FACT_CHECK → ENHANCED_REVIEW → APPROVED → FINAL_PROOF → READY terminal/side states: REJECTED WITHDRAWN ON_HOLD

8. Publication lifecycle state machine

READY → SCHEDULED → PUBLISHED → ACTIVE then: UPDATED CORRECTED ARCHIVED SUPERSEDED MOVED LEGAL_HOLD TAKEDOWN_PENDING REMOVED

Этот слой наследует правила Mathchast_16.

9. Commercial order state

ORDER_CREATED → PAYMENT_PENDING → PAID → MATERIAL_REQUIRED → SERVICE_IN_PROGRESS → PLACEMENT_READY → PUBLISHED → REPORTING → COMPLETED alternatives: CANCELLED REJECTED_CREDIT_RETURNED PARTIAL_REFUND FULL_REFUND DISPUTED

10. Legal state

UNCLASSIFIED → EDITORIAL → DIRECTORY_INFORMATION → BORDERLINE_REVIEW → ADVERTISING → RESTRICTED_REVIEW → REJECTED_LEGAL if ADVERTISING: advertiser resolved contract resolved ORD ready erid ready disclosure ready reporting ready

11. Verification state

UNVERIFIED → SOURCE_ATTACHED → PARTIALLY_VERIFIED → VERIFIED or: DISPUTED FAILED STALE

Верификация относится к claims/relations/entities и не должна заменяться общим approval материала.

12. Четыре очереди модерации

QueueЧто попадаетКто рассматривает
STANDARDОбычная статья, экспертное мнение, нормальный кейс без сложных claimsEditor
ENHANCEDPaid partner, сравнение, чувствительные утверждения, новый topic, сложный кейсSenior editor
LEGAL/HIGH-RISKРегулируемые темы, обвинения, медицинские/финансовые claims, спорная рекламаSenior + Legal; на MVP часто reject
CORRECTIONS/INCIDENTSОшибки в уже опубликованных материалах, takedown, broken disclosuresPriority editor + Legal/Tech по необходимости

13. Risk-based routing

risk signals: paid placement regulated topic negative accusation financial claim medical claim comparison "best / №1" high-impact metric unknown source out-of-scope topic SEO-link request duplicate press release unverified expert new advertiser legal dispute score / rules → STANDARD → ENHANCED → HIGH-RISK

14. Queue priority

P0: wrong ad marking legal takedown false critical fact malware link published page unavailable P1: paid order waiting scheduled publication high-priority correction P2: standard editorial submission profile changes P3: seed content enrichment bulk imported entity cleanup

15. SLA на MVP

ОперацияРабочая гипотеза
Automated precheckДо нескольких минут
Initial human triageДо 1 рабочего дня
Standard moderation1 рабочий день
Повтор после обычных правок1 рабочий день
Enhanced reviewДо 2 рабочих дней
Legal/high-risk2–5 рабочих дней / case-by-case
Critical correctionНемедленный приоритет

РБК Компании заявляет до 3 часов в обычной ситуации и до 2 суток в отдельных случаях. Для нового проекта безопаснее сначала обещать менее агрессивный SLA и улучшать его по данным.

16. SLA clock

Нужно чётко определить, когда часы SLA идут, а когда остановлены.
SLA RUNNING: material submitted all required fields present client responded no external dependency SLA PAUSED: NEEDS_DATA from client waiting advertiser docs waiting client case confirmation waiting legal clarification Dashboard: "Ожидаем вас" не считается просрочкой редакции.

17. Assignment model

publication → queue → assignee → backup assignee → due_at → priority → risk flags → workload estimate

Редактор должен видеть не просто список статей, а очередь с причинной приоритизацией.

18. Editor dashboard

TODAY P0 incidents: 1 Due today: 7 Paid waiting: 4 Needs legal: 2 Corrections: 3 Standard: 11 filters: format topic client risk legal status assignee deadline commercial / editorial verification missing

19. Карточка публикации в CMS

HEADER title format client/entity order risk current state due time TABS: Content Entities Claims Sources Links Visuals Legal Commercial Machine View Versions Comments Audit Analytics after publish

20. Content tab

Редактор работает с typed blocks из Mathchast_23, видит форматные подсказки, inline comments, tracked changes и предупреждения.

BODY + format checklist + reader job + main claim + missing required fields + AI flags + editor comments

21. Entities tab

Company X relation: VENDOR_IN_CASE verified: yes Company Y relation: CLIENT_IN_CASE verified: partial Person Z relation: AUTHOR employment relation: verified Topic: AI Visibility approved topic node

22. Claims tab

CLAIM #14 "конверсия выросла на 34%" impact: HIGH source: client analytics screenshot verification: SOURCE_ATTACHED counterparty confirmation: pending public wording: "по данным компании..." editor decision: ACCEPT / NEED_MORE / REMOVE

23. Sources tab

SOURCE official report registry company document media research questionnaire interview transcript fields: URL / file publisher date retrieved_at supports claims trust tier verification notes

24. Links tab

Применяет Mathchast_17 автоматически.

client.ru/product ROLE: ADVERTISER COMMERCIAL: yes REL: sponsored HTTP: 200 FINAL DOMAIN: client.ru rosstat.gov.ru/report ROLE: EDITORIAL_SOURCE COMMERCIAL: no REL: — HTTP: 200
Клиент не может отредактировать поле rel через rich text.

25. Visuals tab

cover source rights creator AI generated? documentary? alt crops usage rights verification asset hash

26. Legal tab

legal_status classification_reason advertiser_entity payer agency contract ORD erid disclosure restricted category legal reviewer reporting state

27. Commercial tab

order_id SKU price credits payment editing service distribution add-on monitoring window refund eligibility agency/client split

28. Machine View tab

canonical robots index state JSON-LD preview schema warnings sitemap class IndexNow event crawler access OpenGraph publication health

29. Versions tab

v1 submitted by client v2 editor cleanup v3 client revision v4 fact-check corrections v5 approved v6 published v7 correction 12.10.2026 diff each version who why timestamp

30. Comments: private vs client-visible

Comment typeКому виден
EDITORIAL_INTERNALРедакции
LEGAL_INTERNALLegal + senior editor
CLIENT_REQUESTКлиенту
FACT_CHECK_INTERNALРедакции
RESOLUTION_NOTEПо настройке
Не отправлять клиенту внутреннюю фразу вроде «кажется, это сомнительный рекламодатель» из-за одного неверного типа комментария.

31. Triage screen

MODERATOR answers: 1. Format correct? 2. Topic in scope? 3. Reader value present? 4. Obvious pure promo? 5. Duplicate? 6. Legal/ad signals? 7. Sources enough? 8. High-risk claims? 9. Entity verified? 10. Links policy okay? OUTPUT: STANDARD ENHANCED NEEDS_DATA REJECT LEGAL

32. Автоматический precheck до человека

AI/automation должны убирать механическую работу, а не принимать редакционное решение.
PRECHECK: required fields format mismatch broken URLs duplicate similarity source count claim extraction entity extraction title issues prohibited phrases promo signals exact-match anchors legal keywords restricted categories image metadata AI-generated content signals topic distance Context Bridge flag

33. Topic-distance flag

Idea 001 можно встроить прямо в moderation workflow.
new publication → semantic topic distance → far from current graph? NO: normal flow YES: flag NEW_TOPIC_OUTLIER → editor checks: is topic strategically relevant? need Context Bridge? create topic node? reject as out of scope?

34. Field Snapshot workflow

Idea 002 также требует отдельной CMS-механики.
QUESTIONNAIRE CAMPAIGN → participants → consent → entity resolution → claims → verification sample → dataset → aggregation → editorial analysis → publication → participant notification → recurring wave later

35. Questionnaire campaign object

campaign_id title topic target segment open_from / until questionnaire_version participant_count eligibility rules consent_version research_label: survey / snapshot / research editor dataset_id publication_id

36. Participant moderation

response → spam/fraud check → entity resolution → eligibility → consent → outlier check → optional clarification → accepted / excluded exclusion reason stored: duplicate outside sample fake incomplete conflict consent missing

37. Client submission flow

ORDER PAID → choose format → questionnaire or upload draft → client sees required fields → SUBMIT → precheck → moderator → changes requested → client edits → resubmit → approve → legal/ad completion → publish

38. Editor-created-for-client flow

PAID → brief → interview/source collection → editor draft → internal review → client FACT CHECK → client does not buy editorial conclusion → final editor → legal → publish
На клиентском согласовании важно формулировать: клиент проверяет фактическую корректность своих данных, а не получает право переписать материал в рекламный буклет.

39. Client approval types

ApprovalЧто означает
FACTS_CONFIRMEDКомпания подтверждает свои фактические данные
QUOTE_APPROVEDСпикер согласовал цитату при используемой процедуре
CLIENT_CASE_CONFIRMEDКонтрагент подтвердил сотрудничество/результат
FINAL_TEXT_ACKNOWLEDGEDКлиент видел финальную версию; не обязательно имеет veto на editorial

40. Changes requested — только с кодами

Не отправлять клиенту «доработайте статью». Система должна указывать причины.
NEEDS_CHANGES reasons: MISSING_SOURCE UNVERIFIABLE_CLAIM PURE_PROMO FORMAT_MISMATCH NO_READER_VALUE LINK_POLICY TITLE_MISLEADING DUPLICATE OUT_OF_SCOPE LEGAL_INFO_REQUIRED CLIENT_CONFIRMATION_REQUIRED IMAGE_RIGHTS STRUCTURE LANGUAGE

41. Rejection codes

Из Mathchast_14:

NO_READER_VALUE PURE_PROMO SEO_LINK_REQUEST OUT_OF_SCOPE UNVERIFIABLE_CLAIMS DUPLICATE LEGAL_RISK CONFLICT_ATTACK AI_LOW_VALUE additional: FAKE_IDENTITY RESTRICTED_CATEGORY RIGHTS_FAILURE REPEATED_POLICY_BREACH

42. Rejection explanation

Внешнее сообщение должно быть конкретным, профессиональным и достаточно понятным для исправления, но не обязано раскрывать fraud/security heuristics.
PUBLIC: "Материал отклонён: основная часть текста состоит из описания преимуществ услуги, а самостоятельная информационная ценность для читателя не сформирована." INTERNAL: promo pattern link-builder account 3 duplicate placements risk score 72

43. Appeal

Хабр допускает обжалование решения модерации. «Матчасти» тоже нужен минимальный appeal workflow, особенно для платных заказов.

REJECTED → [Запросить пересмотр] → reason from client → second reviewer → decision: UPHOLD RETURN_FOR_CHANGES OVERTURN original moderator не должен быть единственным финальным reviewer appeal.

44. Не делать бесконечные циклы правок

Коммерческий SKU должен определить разумное количество итераций.
Publish: 2 standard revision cycles included если клиент: игнорирует правила или полностью меняет тему → new scope / paid editing fact correction: не считается коммерческой итерацией и может подаваться всегда.

Количество итераций — продуктовая гипотеза для Mathchast_30/31.

45. Editing mode

Тип правкиМожет сделать редактор без согласования?
Опечатка/пунктуацияДа
Небольшая читабельностьДа, если смысл не меняется
Заголовок без смены смыслаДа по policy; для paid можно показать клиенту
Удаление неподтверждённой цифрыСообщить / запросить источник
Изменение фактаТолько после проверки источника
Смена commercial claimLegal/client workflow

46. Track changes

Для клиента нужен простой diff: что изменилось и почему. Это снижает конфликт «вы переписали мой текст».
removed: "мы лучшие на рынке" added: "компания работает в сегменте..." reason: UNVERIFIABLE_CLAIM / editorial neutrality

47. Fact-check workflow

extract claims → classify impact → attach sources → verify source date/context → check units → resolve entity → conflicts? → decide public wording → mark verified/source-attributed → final editor

48. High-impact claims

ClaimGate
«№1 на рынке»Independent methodology or remove
Финансовый результатSource + period
Рост клиента +80%Baseline + method + source; client confirmation desirable
Негативное обвинениеDocuments + right of reply + senior/legal
Медицинская эффективностьMVP usually reject/high-risk

49. Right of reply workflow

material materially criticizes Entity X → create RIGHT_OF_REPLY request → recipient → sent_at → deadline → response → included / declined / no response → editor note Publish decision: does not necessarily require response, but real effort must be recorded.

50. Legal classification before final publish

Legal classification нельзя делать после публикации, когда статья уже разошлась по поисковикам.
before READY: legal_status resolved advertiser resolved if ad disclosure generated erid valid if required outbound commercial links sponsored restricted category cleared rights confirmed

51. Ad workflow

ADVERTISING → advertiser entity → contract → creative/publication metadata → ORD → erid → render disclosure → publish → collect stats → act/reporting → compliance archive

52. Hard publish gates

BLOCK PUBLISH IF: required format fields missing legal_status unresolved ad requires erid and none advertiser missing critical source missing image rights unresolved canonical invalid no responsible author/editor commercial link policy violation client entity impersonation dispute malware destination scheduled embargo not reached

53. Soft warnings

WARN BUT MAY PUBLISH: low number of sources in opinion topic distance high but editor approved image aspect fallback only expert profile incomplete optional schema property missing AI suggested better title

54. Publish button должен объяснять блокировку

Не серый disabled button без причины.
Нельзя опубликовать: ✓ текст одобрен ✓ источники ✕ отсутствует ERID ✓ canonical ✕ не подтверждены права на обложку [Перейти к ERID] [Заменить обложку]

55. Four-eyes principle

Для high-risk публикаций человек, подготовивший материал, не должен единолично финально одобрять его.
RiskApproval
Standard editorial1 editor
Paid partner standardEditor + automated legal checks
Enhanced claim/comparisonSenior editor
High-risk legalSenior + Legal
AppealDifferent reviewer

56. Roles

RoleПрава
CLIENT_AUTHORСоздаёт/редактирует свои drafts, отвечает на запросы
CLIENT_ADMINУправляет company submissions и users
AGENCY_MANAGERРаботает с delegated client entities
EDITORModeration, edits, fact-check
SENIOR_EDITOREnhanced review, appeals, exceptions
LEGALLegal/ad classification, takedown
VERIFICATION_EDITOREntity/claim verification
COMMERCIALOrder/SKU/payment context, без права менять editorial decision
ADMINSystem-level

57. Separation of duties

Продажник не должен иметь кнопку «опубликовать несмотря на модерацию».
COMMERCIAL: can see status can communicate SLA can manage order cannot: override factual rejection remove ad label change sponsored rel grant Editorial Pick

58. Emergency override

Если нужен admin override, он должен требовать:

reason responsible admin second approval for critical state audit event automatic alert NOT: hidden "force publish" button

59. Scheduled publication

APPROVED → choose datetime → freeze final version → pre-publish health check 5–15 min before → publish worker → verify 200/canonical/schema/disclosure → IndexNow/sitemap → notify stakeholders

60. Embargo

Для новости/исследования позже может понадобиться embargo.
embargo_until preview access restricted not sitemap not IndexNow no public route leakage publish automatically after time audit access

61. Post-publish automated checks

T+0: HTTP canonical robots structured data disclosure link rel assets T+5m: sitemap IndexNow response T+1h: crawler/log health as available later: search observations analytics AI observations

62. Failed publish

publish job fails → state PUBLISH_FAILED → alert editor/tech → do not mark order completed → retry if safe → rollback if partial → incident log

63. Partial publish is unacceptable

Ситуация «страница уже доступна, а рекламная маркировка не успела загрузиться» должна считаться критической архитектурной ошибкой.

Legal disclosure и required metadata формируются server-side в одной транзакционной публикационной версии.

64. Correction workflow

REPORT → classify: typo factual material update legal privacy link/security → assign → verify → patch draft version → approve → publish new version → visible note if needed → update lastmod / IndexNow if significant

65. Correction SLA

CorrectionPriority
ОпечаткаNormal
Ошибка в имени/цифреHigh
Неверное обвинениеCritical
Сломанная ad маркировкаCritical
Malware linkCritical

66. Public correction note

CORRECTION: "В предыдущей версии материала была неверно указана выручка компании. Правильное значение — ... Исправлено 12.10.2026." ADMIN: before/after source editor requester reason

67. Client correction request

Клиент может всегда сообщить о фактической ошибке. Это не считается платной «итерацией правок».

Коммерческие пожелания после публикации идут другим маршрутом:

"исправьте ошибку" → CORRECTION "сменился официальный домен" → ENTITY/LINK UPDATE "давайте перепишем статью под новый продукт" → NEW PUBLICATION / PAID UPDATE

68. Takedown workflow

TAKEDOWN REQUEST → requester verification → reason → legal/editorial review → freeze risky edits → choose: correct anonymize archive redirect remove reject request → decision log → public/HTTP lifecycle action

69. Audit log

actor timestamp object action before after reason IP/session/request ID where appropriate related order related verification related ticket
Для ключевых событий audit log должен быть append-only на уровне приложения и защищён от обычного редактирования через CMS.

70. Что обязательно аудировать

71. Publication lock

Пока редактор проверяет конкретную версию, клиент не должен незаметно заменить текст под ним.
submitted_version = v5 locked for review client wants edits: → withdraw submission or → create v6 draft reviewer approval always references exact content_hash.

72. Optimistic editing + version conflict

В интерфейсе можно позволить параллельную работу, но при сохранении:

editor edits v5 client edits v5 → detect base_version conflict → merge/diff required → no silent last-write-wins

73. Internal checklist automation

CASE: ✓ vendor ✓ problem ✓ process ✕ result source ✓ client relation ✕ limitations RESEARCH: ✓ methodology ✓ sample ✕ limitations ✓ dataset ✓ sponsor disclosure

Это делает Mathchast_23 реальным продуктом, а не документом, который никто не открывает.

74. Saved response templates

TemplateПример смысла
PURE_PROMOУберите прайс, оффер и список преимуществ; добавьте процесс/данные
MISSING_SOURCEУкажите источник для конкретной цифры
FORMAT_CASEДобавьте problem/process/result
LINK_POLICYSEO-anchor/dofollow не поддерживается
IMAGE_RIGHTSНужна информация о происхождении изображения

75. Но ответы не должны быть безличным роботом

Шаблон помогает скорости, но редактор добавляет конкретный контекст: какая именно цифра, ссылка или фраза вызывает проблему.

76. Notification system

events: needs_changes approved rejected scheduled published report_ready correction verification_needed payment_issue channels: in-app email later Telegram/business notifications optional deduplicate: do not send 12 emails for 12 field warnings.

77. Client dashboard state labels

InternalClient sees
TRIAGE«На проверке»
ENHANCED_REVIEW«Расширенная проверка»
NEEDS_DATA«Нужны данные от вас»
LEGAL_REVIEW«Проверяем требования к публикации»
APPROVED«Одобрено»
READY«Готово к публикации»

78. Не показывать клиенту всю внутреннюю бюрократию

Client UX должен быть проще внутреннего state machine. Внутренне у нас может быть 25 статусов, снаружи — 6–8 понятных состояний.

79. Moderation analytics

by week/month: submissions approval rate rejection rate needs changes rate avg cycles time to first response time to publish editor workload format breakdown risk breakdown top rejection reasons correction rate legal escalation rate client abandonment

80. Почему rejection rate = 0% — плохой сигнал

Если коммерческий сервис одобряет 100% материалов, moderation почти наверняка декоративная.

Но высокий rejection rate тоже может означать плохой onboarding. Хорошая система должна постепенно переводить часть отказов в precheck и better questionnaires.

81. Editor quality metrics

ПолезноОпасно использовать как KPI
Correction rateКоличество одобренных статей в час без поправки на риск
Source completenessМинимальное время на материал любой ценой
Appeal overturn rateНулевые отказы
SLAСкрытие сложных кейсов ради SLA
Reader/business outcomes laterТрафик как единственный KPI редактора

82. Workload estimation

STANDARD NEWS: 1 unit ARTICLE: 2 CASE: 3 EXPERT: 2 RESEARCH: 5+ LEGAL HIGH RISK: 5+ CORRECTION: variable Dashboard: not just "12 items", but estimated load.

83. Moderator trust tiers

Позже система может учитывать опыт автора/компании, как описывает Хабр: проверенные авторы требуют меньше внимания, нарушители — больше. Но это используется только для routing.

Trusted client никогда не получает bypass обязательных legal/ad/source checks.

84. Repeat offender logic

account history: SEO-link requests hidden ad attempts post-publish link replacement false claims fake sources → trust risk increases → enhanced review → limit submissions → suspend publishing not public score.

85. Post-publish manipulation detection

Хабр отдельно описывает попытки добавить рекламные ссылки после публикации. «Матчасть» должна технически исключить такой обход.

published content edits → cannot go live directly → new version → policy checks → link diff → legal diff → editor approval → republish

86. Link diff

v6: client.ru/about v7 request: best-seo-casino.example/promo SYSTEM: new external domain commercial destination changed risk → block automatic update → enhanced review

87. Legal diff

published: neutral case edit adds: price discount "купить" product CTA → legal classification may change → cannot treat as ordinary correction.

88. Published content editing permissions

RoleDirect live edit?
ClientНет
AgencyНет
EditorСоздаёт новую revision; typo fast-path possible
SeniorRevision + audit
SystemНе меняет смысловой content autonomously

89. Typo fast-path

editor selects text → typo correction → reason TYPO → no client approval → publish minor revision → admin history → no visible Correction note required

90. Significant edit path

significant content edit → new revision → affected claims/sources recalculated → link/legal checks → approval → dateModified → visible Updated/Correction note when appropriate → IndexNow

91. Refund integration

Editorial rejection и деньги должны быть связанными системно, но редактор не рассчитывает возврат вручную.
REJECTED reason code service work completed? billing rules: placement credit unused → return editing work performed → retain according to terms legal rejection before production → policy platform fault → refund/credit → billing service creates result

Точная математика — Mathchast_31.

92. Credit consumption

publication credit: RESERVED at submission CONSUMED when approved/scheduled RETURNED if rejected before placement RELEASED if client withdraws under allowed terms

93. Agency bulk workflow

agency uploads 10 clients → each publication separate entity → each advertiser separate → each company permission checked → shared agency dashboard → per-item moderation → bulk status/reporting НЕ: "approve all 10 because same agency".

94. Batch operations

Bulk actions допустимы только там, где риск одинаков и действие обратимо.
Bulk actionМожно?
Assign editorДа
Add internal labelДа
Approve 100 articlesНет
Change advertiserНет
Publish scheduled approved setWorker can, after per-item gates

95. Editorial calendar

calendar shows: editorial seed paid scheduled research launches Context Bridge pieces Field Snapshot waves embargoes labels: EDITORIAL PARTNER RESEARCH NEWS commercial inventory visible, but not allowed to crowd out reader product automatically.

96. Capacity guardrail

CMS должна уметь ограничить продажи, если редакционная мощность закончилась.
available moderation slots editing capacity legal capacity checkout: earliest publication date based on actual queue Не продавать: "публикация завтра" если очередь уже 40 материалов.

97. Topic mix guardrail

Ещё одно применение Idea 001: CMS может показывать editorial mix и предупреждать, если платные заказы резко уводят сайт в новую случайную тему.
last 30 days: AI/SaaS 45% Marketing 30% Infrastructure 15% Other 10% new orders: Dental clinics x14 → OUT_OF_SCOPE / TOPIC_EXPANSION REVIEW → do not blindly publish.

98. Commercial/editorial ratio dashboard

Не использовать магический fixed ratio, но видеть состав корпуса:

editorial contributed paid advertising sponsored research Field Snapshot by: week month topic homepage exposure

99. Distribution gate

PUBLISHED does not automatically mean: HOME FEATURED separate decisions: indexable topic feed organic recommendation email digest Telegram promoted slot Editorial Pick
Кнопка «Опубликовать» не должна автоматически продавать редакционное внимание.

100. Homepage selection

editorial selection: quality relevance freshness reader usefulness originality commercial boost: separate inventory marked Never: paid order → Editorial Pick flag.

101. API boundaries

Client API later: create draft upload assets read state respond to changes fetch report NO API: force approve set legal status remove sponsored publish without gate

102. CMS event bus

events: PublicationSubmitted PrecheckCompleted NeedsChanges PublicationApproved LegalClassified EridAssigned PublicationScheduled PublicationPublished PublicationUpdated CorrectionPublished PublicationRemoved listeners: notifications billing sitemap IndexNow analytics embeddings search reports

103. Technical consistency

PublicationApproved должен ссылаться на точную version_id. Иначе пользователь может изменить текст между approval и publish.
approve(version_id=53, hash=ABC) schedule(version_id=53) publish checks: current approved hash = ABC if not: BLOCK / re-review

104. Draft autosave

Autosave удобен, но он не создаёт официальную editorial version при каждом нажатии клавиши.

working draft snapshots → ephemeral/recoverable formal versions: SUBMITTED EDITOR_REVISION APPROVED PUBLISHED CORRECTED

105. Preview environment

PREVIEW EXACT FINAL RENDER: disclosure images links schema company cards mobile desktop signed URL noindex not sitemap not IndexNow

106. Client preview

Клиент должен видеть максимально близкий к финальному layout, особенно рекламную маркировку, а не согласовывать Word-файл, который потом выглядит иначе.

107. CMS search

search by: publication title company expert INN/OGRN order ID advertiser erid URL source domain claim text editor status

108. Saved views

"Мои сегодня" "Ждут клиента" "Paid overdue" "Legal" "Corrections" "New topic outliers" "Missing sources" "Scheduled tomorrow"

109. Permissions should be entity-scoped

Agency Manager имеет доступ только к делегированным client entities и связанным заказам, а не «ко всему агентству» по строке company_name.

110. Personal data minimization

CMS не должна показывать каждому редактору:

111. Moderation knowledge base

internal handbook: format rules legal examples link rules sources hierarchy claim examples restricted topics ad classification cases correction policy appeal policy AI policy Each moderation reason: links to handbook section.

112. Decision consistency review

Раз в месяц senior editor должен брать случайную выборку approved/rejected материалов и проверять согласованность решений.
sample 20–50 decisions → compare reason codes → false approvals → false rejects → editor variance → update rules/training

113. AI as reviewer assistant

AI CAN: summarize extract claims compare versions find missing sources detect duplicate classify links suggest format suggest moderation reasons flag legal terms prepare client explanation AI CANNOT: final publish final legal classification approve accusations invent sources silently rewrite facts

114. AI confidence must not hide uncertainty

Если classifier сомневается между editorial и advertising, он обязан поднять BORDERLINE flag, а не выбрать «editorial 51%» и пропустить материал.

115. Human review ergonomics

Цель интерфейса — не заставить редактора читать 14 вкладок для каждой новости. STANDARD workflow должен показывать сначала только критические поля, а детали раскрывать по risk flags.

STANDARD: content format checklist sources links entities decision IF FLAG: legal verification claims rights commercial detail

116. Fast path

Хорошая новость с verified company, источником, нормальными ссылками и отсутствием legal risk должна проходить быстро.
PRECHECK PASS → editor reads → confirms format/source → APPROVE → READY

117. Slow path

paid comparison + "№1" + finance category + 4 commercial links + new advertiser + source conflict → ENHANCED → FACT CHECK → LEGAL → changes → second review → publish/reject

118. Launch staffing hypothesis

ОбъёмОперационная модель
0–10 paid/monthFounder/product + 1 editor can manually learn workflow
20–30 paid/month + editorialDedicated editor + senior/founder; legal external/on demand
50–100 paid/month2–4 editors depending format mix + dedicated queue ownership
100+Need measured staffing model, shifts/SLA, specialization

Это рабочая оценка, не рассчитанная штатная модель. Реальная производительность определяется пилотами и Mathchast_30.

119. Не автоматизировать слишком рано

Первые 50–100 материалов полезно модерировать с высокой долей ручной работы и записывать причины решений. Именно эти данные потом станут хорошей основой для AI precheck.

120. Данные для будущего AI

training/evaluation set internal: input version format flags claims sources editor decision reason codes requested changes final version appeal result → later evaluate AI suggestions Но: privacy / client contracts / AI policy must govern actual model use.

121. Moderation gold set

Собрать 100–300 вручную размеченных примеров:

122. CMS не должна зависеть от AI

Если локальная модель или внешний LLM недоступен, редакция должна продолжать работать. AI precheck деградирует в ручной workflow, но публикационная система не останавливается.

123. Resilience

AI unavailable: → flag PRECHECK_DEGRADED → manual queue ORD unavailable: → advertising publication blocked → editorial unaffected IndexNow unavailable: → publish still possible → queue retry analytics unavailable: → publish still possible → reporting delayed

124. Incident flags

CMS global banners: ORD DEGRADED INDEXNOW DEGRADED AI PRECHECK DEGRADED PUBLICATION HEALTH INCIDENT CRAWLER WAF INCIDENT Editors understand: what is blocked what can continue.

125. Admin config

configurable without deploy: allowed formats restricted topics risk weights SLA revision cycles required verification levels link limits allowed file types crawler policy ref active templates legal classification rules critical config changes: audited.

126. Feature flags

FIELD_SNAPSHOT enabled? AI_PRECHECK enabled? AGENCY_BULK enabled? PAID_NEWS enabled? CONTEXT_BRIDGE scoring enabled? Pilot new functions without exposing to all clients.

127. CMS KPI dashboard

Business: paid submissions publish rate repeat revenue waiting in queue Editorial: time to decision revision cycles corrections rejections Trust: verification coverage source completeness legal escalations System: publish errors health failures IndexNow errors crawler blocks

128. MVP scope

P0 MUST: publication state machine typed templates client submission editor queue assignment + SLA comments versioning + diff reason codes claims/sources entity relations link classification legal status fields ad hard gates preview publish/schedule audit log correction workflow event hooks basic metrics P1: appeals UI agency bulk questionnaire campaigns topic-distance scoring advanced workload WAF crawler dashboard P2: AI moderation assistant advanced risk learning quality sampling automation enterprise SLA tools

129. Что НЕ строить в MVP

Не строитьПочему
Полный универсальный enterprise CMSСлишком большой scope
Комментарии читателейОтдельный moderation burden
Автопубликацию LLMРиск качества/compliance
Сложный BPMN designer для workflowStates известны заранее
100 ролей и permission combinationsРано
Автоматический legal verdictВысокий риск
Автоматический массовый импорт публикацийScaled-content риск

130. Рекомендованная последовательность разработки

1. publication + version model 2. typed editor 3. state machine 4. client submit 5. editor moderation UI 6. claims/sources/entities 7. legal/commercial fields 8. link policy 9. audit 10. preview 11. publish worker 12. sitemap/IndexNow hooks 13. corrections 14. analytics 15. AI precheck later

131. Главная продуктовая логика

Хорошая CMS должна делать правильное действие проще неправильного. Клиенту проще добавить источник, чем спорить с редактором. Редактору проще выбрать reason code, чем писать объяснение с нуля. Система сама ставит sponsored. Публикация без erid физически не проходит gate. Обновление URL автоматически вызывает redirect/discovery pipeline.

132. Решение документа

Утвердить workflow-first CMS. Материал имеет независимые editorial, legal, verification, commercial, publication и measurement states. Все клиентские и редакционные материалы проходят automated precheck и human moderation; риск определяет глубину проверки, но не отменяет обязательные gates. Оплаченный заказ не гарантирует публикацию неизменённого текста. Клиент получает конкретные reason codes и возможность доработки/апелляции. Published content редактируется только через revisions. Legal/ad disclosure, sponsored links, rights, verified version hash и canonical health являются hard publish gates. CMS хранит claims, sources, entities, links, versions и audit trail, а события publication workflow запускают sitemap, IndexNow, analytics и future AI Visibility.

133. Что этот документ разблокирует

Mathchast_24 CMS & moderation → Mathchast_25 AI precheck & AI editor → Mathchast_26 distribution engine → Mathchast_27 reader product → Mathchast_28 seed content → Mathchast_29 client cabinet → Mathchast_31 billing/refunds → Mathchast_32 publication health → Mathchast_37 agency workspace → Mathchast_40 technical architecture → Mathchast_42 monitoring/SLA/incidents

Источники исследования

State machine, роли, очереди, SLA, reason codes, hard gates, version locking, workload units, questionnaire campaign workflow, approval matrix и технические события являются проектной моделью «Матчасти». Они объединяют решения документов 13–23 в единый operational layer. Перед разработкой следует превратить P0-блок в отдельную техническую спецификацию API/БД/UI.