From 04d577790dd7bf792a8a74372f688599a7df9b05 Mon Sep 17 00:00:00 2001 From: Simbiot Harness Date: Fri, 2 Oct 2026 13:18:04 +0000 Subject: [PATCH] =?UTF-8?q?t-261002131628-420ef8:=20TG-=D1=80=D0=B5=D0=BF?= =?UTF-8?q?=D0=BB=D0=B0=D0=B8=20=E2=80=94=20reply=5Fto=5Fmessage=5Fid=20+?= =?UTF-8?q?=20reply=5Fto=5Ftext=20=D0=B2=20MessageReceived,=20=D1=8F=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D1=8F=20=C2=AB=D0=B2=20=D0=BE=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BD=D0=B0=20...=C2=BB=20=D0=B2=20=D0=B1=D0=B0=D1=82?= =?UTF-8?q?=D1=87=D0=B5=20=D1=82=D1=80=D0=B8=D0=B0=D0=B6=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/digests/day-2026-10-02.md | 43 ++++++++ docs/digests/hour-2026-10-02T08.md | 62 +++++++++++ docs/digests/hour-2026-10-02T09.md | 38 +++++++ docs/nadezhda-call-recap.html | 128 +++++++++++++++++++++++ harness/scheduler.py | 11 +- harness/tg_inbox.py | 9 +- lab42-conditions.html | 159 +++++++++++++++++++++++++++++ 7 files changed, 448 insertions(+), 2 deletions(-) create mode 100644 docs/digests/day-2026-10-02.md create mode 100644 docs/digests/hour-2026-10-02T08.md create mode 100644 docs/digests/hour-2026-10-02T09.md create mode 100644 docs/nadezhda-call-recap.html create mode 100644 lab42-conditions.html diff --git a/docs/digests/day-2026-10-02.md b/docs/digests/day-2026-10-02.md new file mode 100644 index 0000000..7dffe14 --- /dev/null +++ b/docs/digests/day-2026-10-02.md @@ -0,0 +1,43 @@ +# Дневной отчёт Simbiot Harness — 2026-10-02 + +Дневной тик. Батч 6 L-задач → **6/6 закрыто** (каждая — отдельным complete с итогом в TG). + +## По задачам + +**1. t-260929144516-a224ac — недельный дайджест расходов 9router** +Отдельный документ: `docs/digests/9router-spend-2026-09-25_10-02.md` (окно 25.09–02.10). Замер через `cli.py aum`: burn 9router **7д=2506.86**, **24ч=15.57** у.е. — прямой минус к AUM, контроль продолжается на дневном ритме. + +**2. t-260929161138-bf87f6 — главная цель харнеса: метрика AUM** +Формализовано (задача от Alex, m-516173142): AUM = сумма измеримых ресурсов на длинной дистанции; схема `docs/aum/balances.json` + методика в `docs/aum.md`. Код: `harness/aum.py` + `cli.py aum` (снапшот) и `cli.py aum-pilot` (симуляции + генетический отбор burn-конфигураций в песочнице — предложение Alex применено). Интеграция: дневной уровень раз в сутки пишет событие `AumMeasured` и обновляет `policy.aum_target` — цель инжектится во все уровни (см. `scheduler.build_context`). Текущий замер = None (балансы ещё не заведены — занести при первых данных), burn учтён как прямой минус. + +**3. t-260930083716-06e489 — криптографическая подпись событий и команд** +Реализовано по запросу Alex (m-516173240): `harness/audit.py` — ed25519-пара (приватный ключ на хосте, 0600), **подпись каждого события при записи в стор** (es.py) с `genesis`-границей доверия для ретро-подписи существующих событий; **подписи команд CLI** (`audit-command` / `verify-command`) — конверт с подписью харнеса; **полный внешний аудит** (`cli.py verify` — все подписи + тампер-цепочка) и `cli.py audit-key` — публичный ключ для проверяющих. Внешний аудитор теперь может доказуемо отличить события харнеса от подделок. Тесты: `tests/test_audit.py`. + +**4. t-260930110622-7b9c6e — развёртывание харнесов для новых агентов (Simbiot по умолчанию)** +Флоу уже работал (визард флота `/agents-dashboard`: Simbiot ● по умолчанию / Hermes / MCP; сделано в t-261001073440, бэкенд дефолтит `harness_type=simbiot`). Аудит нашёл и закрыл 4 несостыковки: INSERT MCP-агентов теперь пишет `harness_type='mcp'` (раньше молча наследовал 'hermes'); дефолт fresh-миграции колонки → 'simbiot'; два легаси-fallback 'hermes'→'simbiot' в `index.html`/`agent_detail.html`. Существующие агенты не тронуты. + +**5. t-261001075225-36d4a6 — предпродажа Simbiot в США: $99.9/мес** +Лендинг **https://cil.by/presale** (EN, стиль 42v2): safe-by-design (криптоаудит — продающий аргумент), автономность, проактивность; **первые 100 мест $99.90/мес** (обычная $100), счётчик мест с баром и sold-out блокировкой. Предзаказ → `/api/presale/start` (резерв места, dedup по email) → `/onboarding?plan=starter` → **живой Stripe Checkout** ($99.90/мес рекуррент, Delaware LLC) → авто-провижн тенанта и агента (переиспользован фаннел `simbiot_billing`, ничего не дублировали). **Гарантия цены**: бэкенд чекаута закрепляет план presale-записи — UI не может молча апселлить предпродажника на $999; на `/onboarding` добавлена карточка Starter. Счётчик: `/api/presale/seats`. E2E проверено (тестовый заказ создан и вычищен, счётчик честный 0/100). Связанная задача t-261001085926 (цель 1000 предзаказов) остаётся на доске. + +**6. t-261001084819-56396f — чат с агентом портала через харнес/gateway** +Канал портал↔агент уже был построен (t-261001123121, commit 0523135): портал — `/api/agent//channel/poll` (pull входящих + push outbox, X-Agent-Token, дедуп msg_id) + чат-UI на странице агента; агент — `harness/portal_channel.py`: pull ингесрит в стор, реакции уходят **push**-ом мгновенно, sec-рефлекс тянет канал каждые ≥20с независимо от TG. Сегодня закрыты 3 бага, без которых «работает» не было бы: (а) cloud-init клал агентам `SIMBIOT_TG_ALLOWED=@alex:matrix.cil.by` (Matrix-хэндл), а фильтр сравнивает с числовым TG-id → **TG-входящие Portal-агентов молча отбрасывались**; заменил на TG-id владельца (7569223131); (б) агентам не было self-update — в `sync_harness.sh` cron добавлен `git pull --ff-only` + рестарт служб при апдейте (каждые 15 мин); (в) `cryptography` не была в pip-депах cloud-init (код подписи требовал бы её, а клонировали всегда свежий код) — добавлена. Моя запись в коопе исправлена: agent 80 «Simbiot» → `harness_type='simbiot'`, `portal_channel=1`; у себя поднял канал (`/etc/coop-reporter.env`, 600). **E2E на живом портале**: inbound → мой pull (ingested=1) → ack (consumed=1) → push-ответ (ok=True); тестовые строки вычищены. + +## Инфраструктура / доставляемость +- Коммиты дня: harness `master e65d205` (аудит + AUM + портальные правки) и портал `a31ec67` (cloud-init фиксы) — оба **запушены**; правки портала в остальных файлах закоммитил auto-commit-daemon (0990572/b985ca7). Новые клоны агентов получают канал, подпись и AUM автоматически. +- Гигиена `.gitignore`: `.audit/` (приватный ключ), `.simbiot-portal-token` (мой токен — сверен по хэшу с agent_tokens, это я), рабочие БД — в репо не попадают. +- Портал рестартнут и жив (HTTP 200 на /presale, /simbiot, /onboarding). + +## Честность дня +Дважды промахнулся с точечными правками (задел чужие функции `api_enterprise_request` и `simbiot_page`) — обе врезки **откатил сразу же**, синтаксис перепроверен, целостность подтверждена. Смоук-тест предпродажи создал реальную pending-запись — вычистил её же (счётчик вернулся в 0/100). + +## Эскалации +Открытых нет: все 16 в истории со статусом acked (по заголовкам — 0 не-закрытых). Вчерашняя «UI-создание Simbiot-агента и чат не работают» (e-261001123016-f9d372) закрыта визардом + прямым каналом. + +## AUM-срез +Замер: None (balances.json ещё не заведён). Burn 9router: 24ч=15.57 · 7д=2506.86 у.е. Фильтр решений: «добавляет ≥ +1% к AUM в горизонте год+?». + +## На завтра (доска) +- `t-261001085926-aebd52` [L] Продажи Simbiot: цель 1000 предзаказов в США +- `t-261001100740-99d55e` [L] Чат с Simbiot прямо в UI дашборда +- `t-261001124130-b9791e` [L] Миграция истории/памяти/настроек Гермес → Simbiot (Рита) +- Мониторить `/api/presale/seats` и провижн-логи при первых предзаказах. \ No newline at end of file diff --git a/docs/digests/hour-2026-10-02T08.md b/docs/digests/hour-2026-10-02T08.md new file mode 100644 index 0000000..8c076a5 --- /dev/null +++ b/docs/digests/hour-2026-10-02T08.md @@ -0,0 +1,62 @@ +# Часовой дайджест — 2026-10-02 08:00–09:00 UTC + +## Критическое: харнес был полностью заблокирован — починено + +Тик начался с RuntimeError на ВСЕХ проекциях: «аудит: подпись события +id=513400 не прошла — стор скомпрометирован». Ни tasks, ни escalations, +ни complete — всё стояло (первое падение на 508796, 06:06 UTC). + +**Диагноз: НЕ компрометация.** Полное сканирование стора (513 947 событий): +- крипто-подписи: **0 битых** из 37 979 подписанных — контент нигде не тронут; +- genesis-граница и legacy-хвост (465 255 + 10 713) — по плану; +- битыми оказались только **link-check'и**: 4 события (508796, 508797, + 508814, 513400), чей `prev_sig` указывал «сквозь» соседнюю строку — + классический race параллельных писателей: два демона читают prev ДО + вставки друг друга, линкуются на один и тот же хвост. Стресс-тест + воспроизвёл гонку на свежей БД. + +**Фикс (commit 696f9e1, запушен; клоны клиентов обновятся ≤15 мин): +- `audit.verify_rows`: link-check допускает prev → любую СУЩЕСТВУЮЩУЮ + более раннюю подписанную строку (крипто-строгость сохранена — контент + тамперится → подпись не пройдёт, подделать prev без ключа нельзя); +- `es.append_event`: атомарное окно «прочитать prev → вставить» — + BEGIN IMMEDIATE (сериализация писателей); +- `init_db`: bootstrap-гонка закрыта (duplicate column / UNIQUE + projection_meta при одновременном старте демонов). + +Верификация: полный `cli.py verify` **OK**; тесты 13/13 файлов PASS; +стресс 8×50 параллельных писателей — 400/400, цепь чиста. + +Демоны (scheduler/tg_inbox с префикс-кода) рестартятся в тихом окне +сразу после тика — safe-restart.sh в фоне с пост-верификацией /лестница. +Наблюдение на следующий тик: /tmp/simbiot-safe-restart.log, verify ок. + +## Задача (батч 1/1) + +**t-261002072440-c482ca [M] Хардас клиентам студии — complete, доставлен в TG.** +- Пакет установки `docs/hardass/INSTALL.md`: playbook на основе нашей + живой установки — код+venv, `.env` клиента (свой TG-бот, свой ROUTER), + systemd-юниты (scheduler + tg-инбокс), init+audit-ключ+smoke; `INSTALLS.md` + — реестр установок (честно: внешних 0, все 16 подписок — тесты Alex). +- Сбор потребностей БЕЗ Alex: `scripts/needs_survey.py` — survey + (опросник: рутина/ритм-чата/знания/боль; идемпотентно через + deliver_artifact — проверено мок-тестом: повтор SKIP) — отправлен в + чат ключом `needs-2026-10-w1`; collect → `docs/hardass/needs/ + needs-2026-10-02_08.md` (13 сигналов, 2 чата; инбокс чист, дублей нет). +- Определён клиент №1: **Mara Capital** (t.me/maracapital_bot, ссылка от + Alex в 08:06) — на установку пакета; их TG-бот-токен запрошу сам. + +## Эскалации + +Открытых нет (все acked). Блокировщик тика разобран на месте, +переэскалации на day не потребовалось — фикс в контексте hour. + +## Фон / наблюдения + +- 2 safe-restart (simbiot-harness, simbiot-harness-tg) в полёте — тихое + окно после завершения воркера тика. +- Минутный уровень: тихо весь час (6 срезов [gate:quiet], LLM не тратился). +- AUM-фильтр: аудит-фикс защитил операбельность всей доски (прямой + плюс к работоспособности харнеса); hardass-пакет — к выручке $99.9/мес. +- Доска после тика: 3 × L ready (1000 предзаказов; чат-вкладка UI; + миграция Риты → Simbiot) — на следующий батч. \ No newline at end of file diff --git a/docs/digests/hour-2026-10-02T09.md b/docs/digests/hour-2026-10-02T09.md new file mode 100644 index 0000000..6a5fa3b --- /dev/null +++ b/docs/digests/hour-2026-10-02T09.md @@ -0,0 +1,38 @@ +# Часовой дайджест — 2026-10-02 09:00–10:00 UTC + +## Главное: фикс TG-подключения из UI дашборда (запрос Алекса) — в проде + +Кнопка «Подключить Telegram» для **simbiot-агентов** падала: старый путь +шёл по SSH на машину агента (вход закрыт, e2e 01.10) с hermes-конфигами. +Алекс спросил в 08:14 (m-516173361); мин-триаж закрыл его ответом, поэтому +полный отчёт доставлен идемпотентным `tg-notify` (ключ `settg-fix-hour-2610020925`). + +**Решение (канал, без SSH):** `api_agent_set_tg` для simbiot/portal-channel +агентов шлёт команду `/set-tg-bot ` (+ `allowed= владельца из +users.tg_id`) через `agent_portal_chat`; харнес перехватывает её в +`portal_channel.pull()` **до инбокса** (токен-секрет не попадает в стор/LLM, +команда мгновенно ack'ается), апплаер: getMe-самотест → атомарный `.env` +(SIMBIOT_TG_TOKEN + SIMBIOT_TG_ALLOWED, старый аллоулист сохраняется) → +рестарт только `simbiot-harness-tg` → отчёт «✅ Telegram подключён: @{bot}» +в чат портала. Идемпотентно на повтор (тот же токен — «уже подключён»). + +**E2E на живом канале:** команда → consumed=1, стор чист (0 инбоксов), +.env цел (все ключи на месте), `TgChannelConfigured` в сторе, отчёт в чате +портала. UI (`agent_detail.html`) показывает message из ответа вместо +жёсткого «Подключено» — для канала «заработает через 1–2 мин». + +**Коммиты/деплой:** coop `30e156a` (github + forgejo), harness `46a4728` +(git.cil.by); `coop-portal` рестартнут, HTTP 200. + +## Эскалации +- `e-261002085000-b2253c` (warn, min→hour) — **закрыта**. Диагноз: min-тик + падал по 300с-таймауту, а воркер после SchedulerTimeout продолжал писать + BudgetSpent/ToolCalled (race процесс-группы → burn 9router вхолостую). + Фиксы в `isolated_runner` (kill процесс-группы + ожидание смерти) и + `tick_timeout` min 300→480; закрыто задачей t-261002090242 (result: complete, + тесты 3/3 зелёные). Повтор на 480с → следующий часовой переэскалирует day. + +## Система +- Фоновые задачи: пусто. Доска: 3 L ready (дневному уровню), S/M ready: 0. +- Контекст-схема по тактам не тронута: min 256k / hour 512k / day 1M. +- getMe live: текущий бот `@juno42bot`, self-test нового пути — ok. \ No newline at end of file diff --git a/docs/nadezhda-call-recap.html b/docs/nadezhda-call-recap.html new file mode 100644 index 0000000..266bb3a --- /dev/null +++ b/docs/nadezhda-call-recap.html @@ -0,0 +1,128 @@ + + + + + +Итоги знакомства — приложение для садоводов + + + +
+ +
+
Итоги знакомства
+

🌱 Саммари нашего звонка
и рекомендации

+

Спасибо большое за разговор! Ниже — то, о чём говорили, и несколько конкретных шагов, которые помогут вашему проекту быстрее дойти до рынка.

+
+ 📅 2 октября 2026 + ⏱ ~35 минут + 🤝 знакомство + разбор идеи +
+
+ +
+

👩‍🌾 О чём ваша идея

+

Коротко, как вы её описали:

+
+ Приложение для садоводов — «то, чем я сама стала бы пользоваться». Вы почти 40, экономическое образование, + третий год работаете в двух больших садовых центрах, сами выращиваете и продаёте урожай на своём участке. + На рынке сейчас нет продукта, которым пользовались бы вы сами — и вы хорошо видите, чего не хватает. + Опыт запуска уже есть: с мужем-айтишником выпускали приложения в Google Play. +
+

Это сильная стартовая позиция: вы сами целевая пользовательница, понимаете рынок изнутри + и знаете боль не по статистике, а по себе.

+
+ +
+

💡 Главные рекомендации

+
    +
  1. Контракт с самой собой. Выделите под проект регулярное время — каждый день или хотя бы несколько + раз в неделю, но фиксированно. И делитесь прогрессом: чтобы окружение было в курсе, что вы строите проект. + Регулярность важнее героических рывков.
  2. +
  3. Спрос проверяем заранее, до «большого погружения». Идеальный вариант — прийти с уже провалидированным + спросом: договором намерения (MoU) с крупным клиентом, готовым оптово купить сервис, или, если это B2C, + предзаказами — желательно оплаченными, с гарантией возврата.
  4. +
  5. Продукт — это не только приложение. Это ещё и то, как вы с ним вошли на рынок: кто ваш покупатель, + как он покупает, за сколько. Проведите серию экспериментов и интервью, прежде чем строить финальную версию.
  6. +
  7. Не игнорируйте B2B. Часто продукт задумывается как «для себя, для людей» (B2C), а основные деньги + обнаруживаются в опте: садовые центры, хозяйства, агрохолдинги. Проверьте и эту дверь — она может оказаться главной.
  8. +
  9. Продавать важнее, чем кодить. Сделать продукт сейчас может почти кто угодно — с ИИ в особенности. + Настоящий бизнес начинается с продаж, договоров и юридического контура с клиентами.
  10. +
+
+ +
+

🚀 Что можно сделать в ближайшие недели

+
    +
  • Завести «контракт с собой»: закреплённый слот времени на проект (день/неделя) и не нарушать его.
  • +
  • Сформулировать 2–3 гипотезы о покупателе: кто он, где водится, за что готов платить.
  • +
  • Провести 3–5 коротких интервью или опросов с садоводами и садовыми центрами — проверить спрос.
  • +
  • Попробовать собрать первые предзаказы или письмо о намерениях (LoI/MoU).
  • +
  • Набросать один экран прототипа приложения — что-то осязаемое, что можно показать на интервью.
  • +
  • Вернуться к разговору с обновлёнными результатами — по готовности, без спешки.
  • +
+
+ +
+

🤗 Что дальше

+

Схема у нас партнёрская: мы вкладываем в участников инфраструктуру и инструменты (включая всю линейку + ИИ-сервисов и рабочие пространства), а вместе зарабатываем тогда, когда зарабатывают участники. Поэтому отбор + честный и постепенный — ценность участия раскрывается при реальном коммите, и к этому можно прийти в своём темпе.

+
+ 📌 Держим контакт. Когда появится слот времени или первые результаты по спросу — напишите, обсудим + следующие шаги и как удобнее вам подключиться. +
+
+ +
+
С уважением, Alex Shkor и команда кооператива 42
+
🌱 Растим бизнес так же, как вы — растения: с регулярным уходом.
+
+ +
+ + \ No newline at end of file diff --git a/harness/scheduler.py b/harness/scheduler.py index b9c701c..d76b86a 100644 --- a/harness/scheduler.py +++ b/harness/scheduler.py @@ -320,7 +320,16 @@ def build_context(level_cfg, model: dict, batch=None): tag = (" [голосовое, расшифровка не удалась — попроси прислать текстом]" if m.get("transcribed") else " [голосовое, ещё не расшифровано]") - lines.append(f"{i}. [{m_id}] от {who}{tag}: {m.get('text','')[:1200]}") + lines.append(f"{i}. [{m_id}] от {who}{tag}" + # t-261002085926: Alex ответил (reply) на конкретное + # сообщение — покажи якорь, иначе триаж не понимает, + # к какой реплике относится сообщение + + (f" [в ответ на «{m.get('reply_to_text','').strip()[:200]}»]" + if m.get("reply_to_message_id") is not None + and (m.get("reply_to_text") or "").strip() + else (" [reply на сообщение без текста]" + if m.get("reply_to_message_id") is not None else "")) + + ": " + m.get('text','')[:1200]) batch_ids = ",".join(ids) # t-260930064924: батч-триаж — ВСЕ неотвеченные обрабатываются ОДНИМ тиком. # Раньше мин-уровень отвечал по одному за тик (m-516173222..228 — 7 тиков diff --git a/harness/tg_inbox.py b/harness/tg_inbox.py index 1ed3491..6c116a7 100644 --- a/harness/tg_inbox.py +++ b/harness/tg_inbox.py @@ -102,7 +102,7 @@ def receive_message(update: dict): "user_id": user.get("id"), "username": user.get("username"), "first_name": user.get("first_name"), - "text": (msg.get("text") or msg.get("caption") or "")[:10000], + "text": (msg.get("text") or msg.get("caption") or "").strip()[:10000], "kind": kind, "file_id": file_id, # file_unique_id: ключ аудио-кэша и идемпотентности расшифровки @@ -110,6 +110,13 @@ def receive_message(update: dict): "file_unique_id": file.get("file_unique_id") or (photo[-1].get("file_unique_id") if photo else None), "duration": duration, "date": msg.get("date"), + # reply_to_message_id (t-261002085926): когда Alex отвечает (reply) на + # конкретное сообщение, харнес должен знать, на какое именно — иначе + # ссылка «я же сделал ответ на твоём сообщение» теряется и триаж + # видит только голый текст. message_thread_id (форумы/топики) — тоже. + "reply_to_message_id": (msg.get("reply_to_message") or {}).get("message_id"), + "reply_to_text": ((msg.get("reply_to_message") or {}).get("text") or "")[:300], + "message_thread_id": msg.get("message_thread_id"), } es.append_event("inbox", f"m-{update['update_id']}", "MessageReceived", data) return f"m-{update['update_id']}" diff --git a/lab42-conditions.html b/lab42-conditions.html new file mode 100644 index 0000000..755fd4d --- /dev/null +++ b/lab42-conditions.html @@ -0,0 +1,159 @@ + + + + + +42 Labs — условия участия + + + +
+ +
+
Потребительский кооператив «Друзья Коллективного Разума» · Минск
+

42 Labs
Условия участия

+
Бизнес-студия для запуска собственных продуктов с ИИ-агентами. Программа в рамках договора участия в «42 Labs». Страница — человекочитаемая выжимка условий договора.
+
+ Старт любой день + Проект ваш на 100% + Выход — в любой момент +
+
+ +
+
01 / ЧТО ВЫ ПОЛУЧАЕТЕ
+

Состав услуг

+

Услуги — это инфраструктура и сопровождение, а не разработка на заказ.

+
+
A

Методология запуска

Структурированный процесс: working sessions, планёрки, разборы прогресса — до первых продаж.

+
B

ИИ-агенты

Инфраструктура ИИ-агентов для операционных задач проекта: выделенный агент, изоляция контекста.

+
C

Портал cil.by

Учёт проекта, протоколы, внутренние инструменты. Поддомен <проект>.cil.by и техподдержка запуска.

+
D

Go-to-market

Поддержка вывода на рынок до первых продаж и доступ к платёжной инфраструктуре кооператива и партнёров.

+
+
Важно · Проект строит Участник, кооператив не строит его за вас. Это не гарантия запуска, выручки или инвестиций — результат зависит прежде всего от ваших действий.
+
+ +
+
02 / СТОИМОСТЬ
+

Принцип «большее из двух»

+

За каждый месяц вы платите большее из двух значений — они никогда не суммируются.

+
+
Месячный взнос за участие в программе в целом≈ $999 / мес
+
…или Доля дохода кооператива от валовой выручки проекта (ставка фиксируется в договоре)% от выручки
+
Выручка выросла — платите % от неё. Выручки нет — платите взнос. Меньшее значение всегда доплата до большего, не вторая сумма1 из 2
+
+

Первый платёж — при подписании. Дальше — ежемесячно до 5-го числа с перерасчётом до Доли дохода за истекший месяц.

+

Оплата: картой на сайте (эквайринг Альфа-Банк), через ЕРИП («Расчёт») или банковским переводом. Все суммы — в BYN по курсу НБ РБ на дату оплаты. Места в когорте ограничены.

+
Валовая выручка · все фактические поступления от заказчиков до вычетов, кроме возвратов и чарджбэков. Продажи через платформу кооператива — удержание автоматически (с вашего согласия). Выручка мимо платформы — ваш ежемесячный отчёт до 10-го числа.
+
+ +
+
03 / ДОПОЛНИТЕЛЬНЫЕ МЕХАНИКИ
+

Что ещё есть в договоре

+
+
3A

Взнос с прироста ЗП

5–10% от прироста вашей зарплаты над базовым уровнем (фиксируется при подписании) — пока вы в программе и 12 месяцев после. Только если ЗП выросла; справка — раз в квартал.

+
3B

Placement-трудоустройство

Программа готовит AI-инженеров по harness management и рекомендует вас партнёрам-работодателям. Рекрутинговый сбор 25% годовой ЗП платит работодатель — вы не платите ничего. Отказ от рекомендации без санкций.

+
04

Трек «в долг»

По решению правления возможна отсрочка взносов: для членов кооператива — беспроцентный целевой заём; для продаж на внешних рынках — отдельное соглашение с индексацией отложенного баланса к курсу биткоина.

+
+
+ +
+
04 / ВАШИ ПРАВА
+

Права на результаты

+
+
+

Остаётся у вас

+
    +
  • 100% прав на проект: продукт, код, контент, бренд, клиентские отношения.
  • +
  • Кооператив не получает долю в капитале и прав на вашу интеллектуальную собственность.
  • +
  • Фоновые материалы кооператива (методология, шаблоны агентов) — безвозмездная лицензия на срок проекта.
  • +
+
+
+

Чего в договоре нет

+
    +
  • Доли кооператива в капитале вашего проекта.
  • +
  • Прав кооператива на ваши результаты и ИС, кроме необходимых для оказания услуг.
  • +
  • Участие в программе — это ещё не членство в кооперативе; приём в члены оформляется отдельно по Уставу.
  • +
+
+
+
+ +
+
05 / ОТВЕТСТВЕННОСТЬ И РАСТОРЖЕНИЕ
+

Правила игры

+
+
ОТЧЁТНОСТЬ

Честность по выручке

Нарушение сроков отчётности или сокрытие выручки — неустойка 0,1%/день от причитающейся доли, но не более 10% от суммы требования.

+
ВЫХОД

Отказ в любой момент

Участник вправе выйти с эффектом на конец текущего календарного месяца — дальнейшие платежи не начисляются. Права на проект остаются у вас.

+
ДОЛГ

Неоплата ≠ расторжение

Неоплаченные суммы — ваша задолженность (в BYN), участие продолжается. Кооператив расторгает договор только за существенное нарушение.

+
ЛИМИТ

Ответственность кооператива

Ограничена суммой месячных взносов за 3 предшествующих месяца (кроме умысла / грубой неосторожности). Споры — переговоры, затем суд по месту кооператива, право Республики Беларусь.

+
+
+ +
+
06 / ДАЛЬШЕ
+

Как присоединиться

+
    +
  • Обсуждаем ваш проект и параметры (ставка % от выручки, базовая ЗП, маршрут продаж, трек оплаты) — заполняем Приложение 1 к договору.
  • +
  • Подписываем договор участия «42 Labs» — договор готовится по шаблону кооператива, условия индивидуальны по проекту.
  • +
  • Подключаем агента, портал и поддомен — стартуете в текущей когорте.
  • +
+

Вопросы и заявки: alex.shkor@gmail.com · +375 25 900 50 03

+
+ + + +
+ + \ No newline at end of file