How we operateКак мы работаем
The doc every new teammate reads on day one. We are a tiny pre-seed team with one belief at the center: measure before you claim, and tell the truth when the measurement is bad. Read this once and you should be able to make a decision, disagree well, and know where every conversation lives — without a single onboarding call. Документ, который читает каждый новый человек в первый день. Мы — крошечная pre-seed команда с одним убеждением в центре: сначала измерь, потом утверждай, и говори правду, когда измерение плохое. Прочитай это один раз — и сможешь принять решение, грамотно поспорить и знать, где живёт каждый разговор, без единого онбординг-созвона.
Our valuesНаши ценности
Four values, each with the behavior we reward and the one we don't. A value without an anti-example is decoration — so every one names something we explicitly refuse to do. Четыре ценности, к каждой — поведение, которое мы поощряем, и то, которое нет. Ценность без анти-примера — это украшение, поэтому в каждой названо то, что мы прямо отказываемся делать.
Measure, then claimСначала измерь, потом утверждай
Every quality claim about the product — latency, translation quality, retention, PMF — must be backed by a number from a real run. We don't ship a mode without an eval, and we don't say "users love it" without a Sean Ellis reading.Любое заявление о качестве продукта — задержка, качество перевода, удержание, PMF — должно опираться на цифру из реального прогона. Мы не выпускаем режим без эвала и не говорим «пользователям нравится» без замера Sean Ellis.
"Latency p95 is 680ms on the eval set; here's the run." Numbers carry a source.«Задержка p95 — 680 мс на эвал-наборе, вот прогон». У цифры всегда источник.
We don't claim PMF, "it feels fast," or "40% retention" until it's measured in real hands.Не заявляем PMF, «вроде быстро» или «удержание 40%», пока это не измерено на живых пользователях.
Lead with the lowlightНачинай со слабого места
When something is broken, contradicted, or unproven, we say it first — to each other, to investors, to users. Our own review found the COGS number contradicted 5–13× across docs; the right response was to surface it, not bury it. Bad news travels at the speed of trust.Когда что-то сломано, противоречиво или не доказано — мы говорим это первым: друг другу, инвесторам, пользователям. Наш собственный ревью нашёл расхождение по себестоимости в 5–13 раз между документами; правильная реакция — вынести это наружу, а не прятать. Плохие новости движутся со скоростью доверия.
Open the standup with the thing that scares you most this week. Flag your own contradiction before someone else finds it.Начинаем стендап с того, что пугает больше всего на этой неделе. Подсвечиваем своё противоречие раньше, чем его найдёт кто-то другой.
We don't round 0 users up to "early traction," and we don't save the bad number for the end of the deck.Не округляем 0 пользователей до «ранней тяги» и не прячем плохую цифру в конец презентации.
Serve the learner's jobСлужи задаче учащегося
Our one ICP is the immersion-method language learner. Every feature is judged against their job — comprehensible input — not against what's technically impressive. A subtitle that preserves the original audio beats a slick auto-mute dub if the learner's job needs the original voice.Наш единственный ICP — учащийся по иммерсия-методу. Каждая фича оценивается по его задаче — понятный ввод (comprehensible input), — а не по технической эффектности. Субтитры, сохраняющие оригинальный звук, важнее красивой авто-озвучки, если задаче учащегося нужен оригинальный голос.
Ship subtitle/dual-track as the default because that's the learner's actual job; keep auto-mute dub optional.Делаем субтитры/двойную дорожку дефолтом, потому что это реальная задача учащегося; авто-озвучку оставляем опцией.
We don't build for the impressive demo (interpreters, full dub) when it fights the ICP's job-to-be-done.Не строим под эффектное демо (переводчики, полная озвучка), когда это бьёт по задаче ICP.
Small, fast, reversibleМалое, быстрое, обратимое
A tiny team wins on speed of learning, not size of plan. Prefer the small reversible bet you can run this week over the big plan you debate for a month. Two-way-door decisions get made by whoever's closest, today.Крошечная команда выигрывает скоростью обучения, а не размером плана. Предпочитаем маленькую обратимую ставку, которую можно проверить на этой неделе, большому плану, который месяц обсуждают. Решения через «дверь в обе стороны» принимает тот, кто ближе, сегодня.
Run the concierge test on 30 buyers this week to learn WTP, instead of modeling it for a month.Запускаем консьерж-тест на 30 покупателях на этой неделе, чтобы узнать готовность платить, вместо месяца моделирования.
We don't hold a meeting to approve a reversible decision someone could just make and undo.Не собираем встречу, чтобы согласовать обратимое решение, которое можно просто принять и откатить.
How we decideКак мы решаем
DRI One Directly Responsible Individual per decision. Every decision has exactly one owner — the DRI — who gathers input, makes the call, and writes it down. The DRI is not the most senior person; it's the person closest to the work. At a 2–4 person team, "we'll decide together" is how nothing gets decided, so we name the owner out loud.Один ответственный (DRI) на решение. У каждого решения ровно один владелец — DRI, — который собирает входные данные, принимает решение и фиксирует его. DRI — не самый старший, а тот, кто ближе всего к работе. В команде из 2–4 человек «решим вместе» — это способ не решить ничего, поэтому мы называем владельца вслух.
Two-way vs one-way doors. Reversible decisions (a copy change, an experiment, a prompt tweak) — the DRI just ships and logs it. Irreversible or expensive ones (entity/funding path, the audio-engineer hire, picking a TTS vendor to build on, a pricing-model change) — the DRI writes a one-paragraph memo and gets a same-day async sign-off from the founder before committing.Двери в обе стороны против дверей в одну. Обратимые решения (правка текста, эксперимент, твик промпта) — DRI просто выкатывает и логирует. Необратимые или дорогие (выбор юрлица/путь финансирования, найм аудио-инженера, выбор TTS-вендора под застройку, смена модели цен) — DRI пишет абзац-памятку и получает асинхронное одобрение фаундера в тот же день перед коммитом.
EscalateЭскалация Escalate when a decision is one-way, crosses a tripwire in the risk register, would change a number in the financial model, or two people are blocked and can't converge by end of day. Escalation goes to the founder; the founder decides within one business day or explicitly delegates back. Recurring decision-types live in 15-decisions-raci, so we never re-litigate the same call twice.Эскалируй, когда решение необратимо, пересекает триггер из реестра рисков, меняет цифру в финмодели или двое заблокированы и не сходятся к концу дня. Эскалация идёт фаундеру; фаундер решает в течение одного рабочего дня или явно делегирует обратно. Повторяющиеся типы решений живут в 15-decisions-raci, чтобы не пересуживать одно и то же дважды.
How we disagreeКак мы спорим
Disagree and commit. You owe the team your strongest objection before the decision, in writing, with your reasoning. Once the DRI calls it, you commit fully — even if you'd have chosen differently. Re-litigating a decided call in side-channels is the one thing that quietly kills a small team.Спорь и принимай. Ты должен команде своё самое сильное возражение до решения, письменно, с аргументацией. Как только DRI принял — ты полностью коммитишься, даже если выбрал бы иначе. Пересуживание принятого решения по боковым каналам — единственное, что тихо убивает маленькую команду.
When you may block. Blocking is for the rare case where you believe the decision is ethically wrong, legally exposed, or one-way-fatal to the company — a voice-clone consent gap, a claim we can't back with data, betting the model on an unproven self-host assumption. Blocking is loud and rare: name the specific harm and the evidence. "I disagree" is not a block; "this ships a PMF claim we never measured" is.Когда можно блокировать. Блок — для редкого случая, когда ты считаешь решение этически неверным, юридически рискованным или необратимо-фатальным для компании: пробел в согласии на клон голоса, заявление без данных, ставка модели на недоказанное self-host-предположение. Блок — громкий и редкий: назови конкретный вред и доказательства. «Я не согласен» — это не блок; «это выпускает заявление о PMF, которое мы не измеряли» — блок.
Decision > consensus. We don't wait for everyone to agree. We wait for everyone to be heard, then the DRI decides and logs it.Решение > консенсус. Мы не ждём, пока все согласятся. Мы ждём, пока всех услышат, затем DRI решает и логирует.
Meeting hygieneГигиена встреч
Async is the default; a meeting is a confession that async failed. We hold exactly two recurring syncs: a 15-min Monday kickoff and a 30-min Friday demo+retro. Everything else is a written thread unless it clears the bar below.Асинхрон — дефолт; встреча — это признание, что асинхрон не сработал. У нас ровно два регулярных синка: 15-минутный понедельничный kickoff и 30-минутное пятничное демо+ретро. Всё остальное — письменный тред, если не проходит планку ниже.
- No status meetings. Status is posted in writing before the sync, not read aloud during it. If the meeting is one person updating others, it should have been a message.Никаких статус-встреч. Статус пишется до синка, а не зачитывается на нём. Если встреча — это один обновляет остальных, это должно было быть сообщением.
- No agenda, no meeting. A meeting without a written agenda + a named decision to make gets declined, no offense taken.Нет повестки — нет встречи. Встреча без письменной повестки и названного решения отклоняется, без обид.
- Every meeting ends with a logged decision + DRI. If nothing was decided, the meeting failed; write down why and what we'll do async instead.Каждая встреча кончается зафиксированным решением и DRI. Если ничего не решено — встреча провалилась; запиши почему и что сделаем асинхронно вместо неё.
- Default to 25/50 min and to declining. Two hard-focus blocks a day are protected for everyone — no meetings inside them.По умолчанию 25/50 мин и право отказаться. Два блока глубокого фокуса в день защищены у всех — внутри них встреч нет.
Comms normsНормы коммуникации
One channel per job. The rule: if the next person can't find the decision in six months, it was posted in the wrong place. Один канал на одну задачу. Правило: если через полгода следующий человек не найдёт решение — оно было запостено не туда.
| ChannelКанал | Use it forДля чего | Response normНорма ответа |
|---|---|---|
| Slack | Discussion + quick sync. Threads, not channels-as-firehose. Decisions reached here get copied to the doc/ticket.Обсуждение и быстрый синк. Треды, а не канал-водопад. Решения, принятые тут, копируются в док/тикет. | Async; reply within the day. Not for anything urgent off-hours.Асинхрон; ответ в течение дня. Не для срочного вне часов. |
| Linear | Every unit of work: bugs, tasks, experiments. If it isn't a ticket, it isn't being tracked.Любая единица работы: баги, задачи, эксперименты. Нет тикета — значит не отслеживается. | One owner + status per ticket, always current.Один владелец и статус на тикет, всегда актуальные. |
| Notion | Durable docs: this playbook, decision log, research, specs. The source of truth a decision points to.Долговечные документы: этот плейбук, лог решений, ресёрч, спеки. Источник правды, на который ссылается решение. | Comment in-doc; resolve threads when done.Комментарий в доке; закрывай треды по готовности. |
| GitHub | Code, prompt modules, and eval definitions. Prompt changes are PRs with regression evals — no Slack-pasted prompts.Код, промпт-модули и определения эвалов. Изменения промптов — это PR с регрессионными эвалами, никаких промптов из Slack. | PR review same-day; CI eval gate must be green.Ревью PR в тот же день; CI-гейт эвалов должен быть зелёным. |
| External only: investors, partners, hires, users. Internal email is a smell.Только внешнее: инвесторы, партнёры, кандидаты, пользователи. Внутренний email — тревожный сигнал. | Reply within one business day.Ответ в течение одного рабочего дня. |
On-call expectationsДежурство и инциденты
Honest about scale: we're 2–4 people, so on-call is shared and lightweight, not a heroic 24/7 pager. One person holds the week (the rotation is just "whoever isn't head-down on the MVP this week"); the founder is the permanent backstop. We make the rotation real now so it doesn't have to be invented during the first real outage.Честно о масштабе: нас 2–4 человека, поэтому дежурство — общее и лёгкое, а не героический пейджер 24/7. Один человек держит неделю (ротация — это просто «тот, кто на этой неделе не закопан в MVP»); фаундер — постоянный бэкстоп. Делаем ротацию реальной уже сейчас, чтобы её не пришлось придумывать во время первого настоящего сбоя.
Severity levels.Уровни severity.
- SEV-1 — pipeline down (audio capture, STT/MT/TTS, or billing broken for users). Ack within 15 min, all-hands until mitigated, post-mortem within 48h. This is the only level that justifies interrupting focus or off-hours.SEV-1 — пайплайн лежит (перехват звука, STT/MT/TTS или биллинг сломаны у пользователей). Подтверждение за 15 мин, все на палубу до устранения, пост-мортем за 48 ч. Единственный уровень, оправдывающий прерывание фокуса или вне-часов.
- SEV-2 — degraded (latency past p95 budget, one provider failing, eval gate red). Ack same business day; fix or roll back the provider (see
20-ai-addendumswap procedure).SEV-2 — деградация (задержка выше бюджета p95, один провайдер падает, эвал-гейт красный). Подтверждение в тот же рабочий день; чинить или откатить провайдера (см. процедуру замены в20-ai-addendum). - SEV-3 — minor (cosmetic, single-user, non-blocking). File a ticket; handle in normal flow.SEV-3 — мелочь (косметика, один пользователь, не блокирует). Заводим тикет; в обычном потоке.
Every SEV-1/2 gets a written post-mortem (blameless: what failed, what we change), linked from the decision log.Каждый SEV-1/2 получает письменный пост-мортем (без обвинений: что упало, что меняем), со ссылкой из лога решений.
Anti-goals — what we don't doАнти-цели — чего мы не делаем
A strategy is defined as much by its refusals. Five things we will not do, so we never have to debate them under pressure. Стратегия определяется отказами не меньше, чем целями. Пять вещей, которые мы не делаем, чтобы не спорить о них под давлением.
We don't ship a mode without an eval gateМы не выпускаем режим без эвал-гейта
No translation mode, prompt, or model swap reaches users until it passes the labeled eval set in CI. Quality is the only thing we sell; we don't ship it on a hunch.Ни один режим перевода, промпт или смена модели не доходит до пользователей, пока не пройдёт размеченный эвал-набор в CI. Качество — единственное, что мы продаём; не выпускаем его на удачу.
We don't claim PMF, traction, or numbers we haven't measuredМы не заявляем PMF, тягу или цифры, которых не измеряли
No "users love it," no rounded-up adoption, no LTV:CAC we can't derive from real data. If it isn't measured, it's a hypothesis and we label it one.Никаких «пользователям нравится», округлённого охвата, LTV:CAC, который не выводится из реальных данных. Если не измерено — это гипотеза, и мы её так и помечаем.
We don't chase a second ICP before the first one paysМы не гонимся за вторым ICP, пока не платит первый
Immersion learners are the one beachhead. Interpreters, creators, and enterprise are explicitly off-roadmap until the learner wedge is paying — a tiny team that serves everyone serves no one.Иммерсия-учащиеся — единственный плацдарм. Переводчики, креаторы и энтерпрайз прямо вне роудмапа, пока не платит клин учащихся — крошечная команда, обслуживающая всех, не обслуживает никого.
We don't compete on model quality or priceМы не конкурируем качеством модели или ценой
Everyone rents the same STT/MT/TTS APIs — model quality is table stakes, not a moat. We win on OS-level integration, speed, and UX. We don't start a price race to the bottom either.Все арендуют одни и те же STT/MT/TTS API — качество модели это вход, а не моат. Мы выигрываем системной интеграцией, скоростью и UX. И не начинаем гонку цен вниз.
We don't hire generalists or grow headcount ahead of revenueМы не нанимаем дженералистов и не растим штат впереди выручки
Pre-PMF, every hire is a specialist the moat needs (first: the Rust/CoreAudio audio engineer). We don't add roles to feel like a company; headcount follows revenue milestones, not the calendar.До PMF каждый найм — специалист, нужный моату (первый: аудио-инженер на Rust/CoreAudio). Не добавляем роли, чтобы чувствовать себя «компанией»; штат следует за вехами выручки, а не за календарём.