graph LR RS["Сырые сессии"] --> QG["Quiet gate 45 минут: секреты · стабильные ID"] QG --> SEG["Parent + segments"] SEG --> FC["Кандидаты в факты"] FC --> FG["Сканер + pre-insert gate: опора · атомарность"] FG --> DD["Дедупликация + supersession"] DD --> F["Факты: неизменяемый журнал"] F --> CON["Ограниченная консолидация"] CON --> T["Канонические takes"] EP["Допустимые источники"] --> XQ["Точная цитата ≤200 символов"] XQ --> AG["Проверка цитаты: чувствительность · опора"] AG --> AT["Atom-страницы: body = цитата"] AT --> CL["Concept labels"] CL --> ST["synthesize_concepts: 10 → 100 · auto-drain выключен"] classDef input fill:#16161f,stroke:#8a86a0,color:#f4f2ff; classDef gate fill:#2a1420,stroke:#fb7185,color:#ffd4dd; classDef store fill:#06251e,stroke:#00d4aa,color:#d4fff5; classDef hold fill:#2a230b,stroke:#fbbf24,color:#fef3c7; class RS,QG,SEG,EP,XQ input; class FC,FG,DD,AG gate; class F,CON,T,AT,CL store; class ST hold;