Архитектура
Два полушария + мост
flowchart TB
subgraph RIGHT["SINQLY — правое полушарие<br/>сигналы · UX · LLM"]
direction TB
BOT["Telegram-бот FSM<br/>/state 8 вопросов · /priority · /decisions"]
WEB["Web-shell sinqly.ru<br/>dashboard + /api proxy"]
ADV["Advisor digest<br/>1 действие / неделя"]
UI["Web-UI<br/>задачи · проекты · state · ставки · финансы"]
end
subgraph BRIDGE["МОСТ"]
direction TB
TGID["tg_user_id<br/>449259198"]
CLIENT["pfbo_client.py<br/>httpx · retry · X-PFBO-Token"]
end
subgraph LEFT["PFBO — левое полушарие<br/>числа · scoring · калибровка"]
direction TB
API["FastAPI :8210 · Postgres"]
STATE["state gate<br/>score + светофор<br/>state_multiplier"]
LEDGER["decision ledger<br/>Brier · premortem · base_rate"]
FIN["alloc · portfolio<br/>CapitalTier · fractional"]
PRIO["prioritize engine"]
PT["projects · tasks · time_entries"]
end
BRAIN["BRAIN<br/>атомы знаний · mnlos"]
BOT -- "POST /state/checkin" --> CLIENT
WEB -- "/api/{path}" --> CLIENT
UI -- "/api/{path}" --> CLIENT
CLIENT -- "X-PFBO-Token" --> API
API --> STATE
API --> LEDGER
API --> FIN
API --> PRIO
API --> PT
ADV -- "читает" --> LEDGER
ADV -- "читает" --> STATE
BRAIN <--> ADV
Слои и готовность (из аудита 2026-09-02)
flowchart LR
S0["Слой 0<br/>живучесть<br/>10%"] --> S1["Слой 1<br/>самосознание<br/>40%"]
S1 --> S2["Слой 2<br/>ledger+Brier<br/>55%"]
S2 --> S4["Слой 4<br/>фин-советник<br/>45%"]
S0 --> M["Мост tg_user_id<br/>10%"]
S2 -.-> S3["Слой 3<br/>наставник<br/>0% отложен"]
S2 -.-> S5["Слой 5<br/>время/фокус<br/>30%"]
Поток данных одного цикла
sequenceDiagram
participant U as Пользователь
participant B as Sinqly-бот
participant C as pfbo_client
participant P as pfbo API
participant D as Postgres
U->>B: /state (8 ответов)
B->>C: state_checkin(tg_user_id, ...)
C->>P: POST /state/checkin
P->>D: INSERT state_checkin
P-->>C: score + светофор + рекомендация
C-->>B: render_state
B-->>U: текст (score, светофор, 1 действие)
Принципы (анти-фейл)
- Процесс > исход. Один исход = шум, выводы только на ≥30 решениях.
- Near-zero friction на захвате: 1 сообщение, не форма.
- pfbo = узкий gate + longitudinal, sinqly = UX/LLM. Не дублировать psych stack.
- Wellness framing, не диагноз. Без мед. терминов (вне FDA SaMD).
- НЕ сливать данные brain/pfbo (NDA-периметр).