Дашборд .dashboard flex→grid auto-fit — 5 карточек не обрезаются в узком окне. Эмодзи 🔥/✅ убраны; level-summary/focus-now/levelup-distance удалены как шум; mastery% зашит в заголовок секции топиков (group-pct-<cefr>). Мёртвые импорты weakRuleCandidates/levelUpProgress и CSS-классы сняты. Absorb /verta:prototype. |
||
|---|---|---|
| .claude/skills | ||
| .forgejo/workflows | ||
| assets | ||
| cmd/kairo-api | ||
| deploy | ||
| desktop | ||
| docs | ||
| harness | ||
| internal | ||
| third_party/verta | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| go.mod | ||
| README.md | ||
| vertaship.yaml | ||
Kairo
Desktop English trainer — заставляет производить язык (ru→en), а не смотреть переводы. ru→en грамма-дрилл с targeted sentence-transformation, error-driven приоритет, свой FSRS, словарик с контекстом, перевод выделенного в любом приложении. Под программиста-релоканта и любой уровень (curriculum для A1–A2, error-driven для B1+).
Документы-нарратив:
- Что и зачем —
docs/prd.md(living PRD). - Как устроено —
docs/design.md(Профиль / Архитектура / Интеграции / Риски).
Форма
- desktop/ — Tauri 2 (Rust boundary + React/Vite + SQLite), local-first. Каркас копируется из iskra (selection/paste/hotkey/overlay/secrets/db/тема).
- cmd/kairo-api/ — Go LLM-прокси: Verta ID-auth, промпт-контракты C1–C5, OpenRouter (ключи в Infisical). Доставка через Vertaship.
Профиль: inside-infra (Verta ID, Vertaship, Forgejo CI, Infisical). Бюджет MVP ~100ч.
Статус
Bring-up: репо + инфра провижинены через /verta:init. kairo-api — пока
healthz-заглушка; продуктовая логика нарезается в Linear (/linear:plan).
LLM-метрики kairo-api (как читать)
Каждый LLM-вызов strict-контрактов (C1/C2/C5) пишет лог-запись llm call
(VERTA-2071): contract, model, duration_ms, repair (bool — это
repair-retry), prompt_bytes, completion_tokens. Читать по прод-логам:
vobs logs kairo-api | grep '"msg":"llm call"'
# медиана duration_ms по C2: фильтр '"contract":"C2"' → поле duration_ms
# доля repair: записи с '"repair":true' / все записи контракта