игрок ставит процессы, ритуалы и агентов на кольцо из пяти станций и проводит компанию через сезон кризисов: восемь глав от набора до дедлайна старта. игра считает, какой процесс тянул кольцо под каким давлением, и показывает это карточками разбора после каждого боя.
{turnover} is a card roguelike about the processes of an AI-native company. This project board is in Russian: how the rules changed from the design document to v0.3 with the balance bot's numbers, the anatomy of a card, four leaders with their roles, the story of act one with its threads and endings, and seasons told chapter by chapter. The game itself plays in English and Russian.
сигнал входит слева, идёт по часовой стрелке через {контекст} и {решение} к {дело}. под станциями – проекция недели: сколько пройдёт и сколько перельётся в шум. красная станция – узкое место. кризисы стоят на внешнем кольце напротив станции, которую давят.
каждое правило прошло один путь: находка, правка данных или движка, тест, который её закрепляет, прогон бота с записанным числом сезонов и запись в docs/rules-decisions.md с откатом. линия ниже – доля сезонов, которые бот выигрывает; фиолетовая полоса – цель 30–55%.
ранние замеры выполнялись на 300 сезонах; новые раунды по запросу 54 используют 800 на цель. число прогонов каждого замера, перенос статистики, точные изменения и картинки видны в табличной истории.
node --testrules-decisions.md: до, после, откатengine: … во вложенный git проектау карты три оси. тип: процесс стоит на станции и работает каждую неделю, действие срабатывает сразу, статус мешает. станция: цвет полосы и точка на мини-кольце. уровень: база → ▮ обычная → ▮▮ редкая → ▮▮▮ легендарная; плюс после имени – улучшенная карта. по клику на ⤢ или правой кнопкой открывается полная карта со всеми параметрами.
перед сезоном игрок выбирает руководителя. у каждого роль и домашняя станция: Основатель – стратег на {сигнал} и {решение}, двигает таймеры кризисов; Операционный директор – темп на {дело}; Архитектор агентов – комбо на {контекст}, собирается дольше всех и сильнее всех к боссу; Фасилитатор – опора на {ретро}, переводит шум в энергию. пассив меняет старт, способность срабатывает по зарядам (кнопка слева от руки или клавиша Q), именная карта лежит в стартовой колоде вместо базовой, награды и рынок чаще предлагают карты роли. портрет героя собран из глифов: голова, свет, атрибут роли.
story.json, механика threads.jsonсезон – карта акта из восьми рядов с развилками, ряд карты – глава. у главы своё место, вступление и названия узлов: бой в первой главе – «ящик заявок», рынок – «рынок подрядчиков». бои стоят по главам осмысленно: ранние кризисы внизу, элиты в середине, запуск лабы наверху. на карте видны названия на два ряда вперёд, дальше туман. экран краснеет к боссу.
шесть дилемм ставят нить. она возвращается на боссе, на следующей элите, на передышке или в бою – с эффектом и строкой сцены. половина возвратов помогает, половина мешает: игрок решает, какой долг брать на финал.
после сезона отчёт показывает кольцо: сколько пропустила каждая станция, сколько ушло в шум, сколько недель станция стояла пустой. сверху – выводы, которые команда может сказать вслух. числа описывают кольцо игры; с реальными процессами их сверяют по реестру команды.
| Areteion | карты работают на поле и приносят очки разными путями; разбор «кто дал больше всего». взяли: процессы стоят на станциях и производят, архив процессов. |
| Slay the Spire | намерения врага видны заранее; карта узлов с выбором риска; 1 из 3 карт после боя. взяли: таймеры кризисов, карта акта, награды. |
| Cultist Simulator | глаголы как слоты с таймером, ресурсы гниют без присмотра. взяли: станция как слот процесса, шум как гниль. |
| Reigns | два ответа, четыре метра, у каждого края смерть. взяли: дилеммы фракций, энергия и доверие как два способа проиграть. |
| Balatro | видимый конвейер подсчёта слева направо. взяли: поток по кольцу с числами на каждой станции. |
| Wildfrost | счётчики вместо маны создают читаемое время. взяли: кольцо таймера на карте кризиса. |
| Democracy | каждое число объясняет свои причины. взяли: проекция недели и трасса «почему» на метрах. |
bash tools/check.sh| правила | node --test tests/ – детерминизм, проекция = факт, сохранение туда-обратно, числа в текстах карт = эффекты, герои |
| данные | validate-data.mjs – схема эффектов, ссылки, ≤ 12 слов на карте |
| баланс | sim.mjs --strict – – прогонов ботом на цель, цель 30–55% побед, бой 3–6 недель |
| перевод | i18n-keys.mjs --strict – у каждой строки интерфейса есть английская |
| интерфейс | ui_smoke.py – титул → герой → бой → неделя в Chromium, 1440 и 1280, кодекс, зум, кубик, язык |
| сезон | ui_run.py – весь сезон кликами мыши по экранам, кадр каждой фазы, стоп при зависании |
| webkit | ui_smoke.py --browser webkit – тот же смоук в движке Safari, на котором стоит Mac-оболочка |
| mac | build-mac.sh + --smoke – та же игра в WKWebView, окно не появляется |
Swift 6.3, одно окно с WKWebView, файлы по схеме oborot://, сохранения в ~/Library/Application Support/Oborot. Сборка одним swiftc без Xcode-проекта: arm64 + x86_64, подпись ad-hoc, zip около 3 МБ.
оборот – это и деньги (выручка), и люди (текучка), и поворот кольца. английское слово turnover несёт те же три смысла и ещё четвёртый: потеря мяча под давлением. ромб – рабочее имя, фиолетовая рамка – запасное.
AIM Brand mono 700 – имена и числа
JetBrains Mono – всё остальное. Арт карт – процедурный ASCII из двенадцати мотивов, как поле символов на главной сайта.